What's happening here is that the worker is running as a service, but is trying to access the screen-space (the user's desktop environment).
If no one's logged in, there's no screen-space. If someone is logged in, OS-level security policies prevent the service from accessing a logged-in user's screen space.
Qube! has a way to handle this; you can run the worker as a user process started by a logged-in user, and not a service. This way, the user process is already running in the user's screen space, so all jobs that run can access the screen space.
We refer to this as "Desktop User" mode.
Here are instructions to switch your worker from a service to Desktop User mode:
First, disable the worker service while logged in as an admin-equivalent with QubeGUI->Admin->Worker->Stop and Admin->Autostart Worker->Disable. Verify that the Admin menu items have updated to show the worker as stopped and will not autostart.
Then log in as the user who will run the worker process, the existing proxy user will serve (qubeproxy's password is Pip3lin3P@$$wd). Start the worker as the desktop user with QubeGUI->Admin->Worker->Start as the Desktop User. Set it to auto-start when this user logs in with Admin->Autostart Worker->Enable Desktop Worker (on user login). This should create a "DesktopWorker" shortcut in Start-Programs-><user>->Startup.
DW worker mode on Win7 also requires that all jobs have the "disable_windows_job_object" flag set, otherwise the proxy.exe process may crash when a job is started on the worker. On the supervisor, add this flag to the "supervisor_job_flags" to enable this on a global scale. The easiest way to do this is with QubeGUI->Admin->Configure. Symptoms of a crashed proxy process is the worker is shown as running the job, but the job never actually gets marked as 'running'.