proXPN Windows startup problem – a workaround

I’m a big fan of the proXPN VPN service but for a while now I’ve had an annoying problem with the Windows client. It would not start automatically on my Windows 7 64bit machine when the Launch client on system startup option was enabled.

The option works by creating a Task Scheduler task to launch the client when the current user logs on, but it simply wouldn’t work as intended. Frustratingly, the Task Scheduler history would record that the task had completed successfully even though the client appeared not to launch. Even worse, executing the task manually by right-clicking and choosing the Run option would successfully launch the client every time.

The problem turned out to be one of simple timing. I can only assume there is a service or other OS-level dependency that the proXPN client needs to run, and without it the executable just exits silently. Delaying the execution by 20 seconds within the Edit Trigger dialog is enough to let the client launch successfully upon login.

ts

Unfortunately this manual editing only works once because the client recreates the task each time it runs, overwriting the delay and causing subsequent launches to fail. Fortunately there is a solution to this, too.

The proXPN client uses a simple XML file to recreate the Task Scheduler task each time it is run. The file is proXPN_task.xml and is located in the same folder as the main executable. The default location is C:\Program Files (x86)\proXPN\bin\

To permanently add the delay to the proXPN login task, open this XML file in your favourite text editor (you may need to run as Administrator to ensure you can write the edited file back) and look for the following lines:

<Triggers>
     <LogonTrigger>
          <Enabled>true</Enabled>
          <UserId>[your username]</UserId>
     </LogonTrigger>
</Triggers>

Inside that block, add the line that’s highlighted in red below:

<Triggers>
     <LogonTrigger>
          <Enabled>true</Enabled>
          <UserId>[your username]</UserId>
          <Delay>PT20S</Delay>
     </LogonTrigger>
</Triggers>

This will add a permanent delay of 20 seconds to the client launching task.

Save the file and, if proXPN is already running in the Notification Area, exit and re-run it. If it isn’t already running, run it. This ensures that the scheduled task gets recreated with the new value.

Depending on the speed of your system you may need to increase the delay, or you may be able to reduce it. On my SSD-based system I’ve found that from a cold boot with automatic login a 20 second delay means the proXPN icon appears in the Notification Area a couple of seconds after the taskbar appears.

For faster or slower systems, or those where users always login manually, a bit of trial and error may be needed to find the ideal delay.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s