Just a thought, but have you tried running the executable the shortcut on your desktop points to directly? Is the result the same?
I'm pretty sure I tried that, with the same results (I'm at work now, so I can't check). Thanks for the suggestion, though. Anyway, I've found the cause, thanks to a post on another forum, and it turns out that this isn't a 'problem', Oh no, it's a 'feature'...
Apparently it's down to Game Explorer, a 'feature' of Windows Vista onwards that, when you click on a recognised game, then Game Explorer loads in the background, counts how often you've loaded the game, and does other things, including going online to check with some database if there's a patch for the game. Oh, and if the PC is offline (which this laptop is) then the process just, er, hangs. Apparently this problem has been known about for years, Microsoft has been bombarded with requests to fix it, and have done nothing.
To quote from the first thread I list below:
As we all know, Vista introduced the Game Explorer (GameUX.dll) which incorporates update checking and game information.
What most on't know, is that the instant a game is launched, Rundll.exe is spawned with the GameUX.dll,gameshim parametre and constantly polls the dns, network and domain functions in the OS.
The problem here, lies in the fact that if this process does not receive a response, the Game's process will sit frozen until a response is recieved.
Now the Rundll process actually acts as a mask for the games executable until the response from the servers is received, that said closing the rundll.exe prior to the handover being made will also close the Games executable.
You can work around this in a way by killing the actual game executable, which will keep the rundll open, and then opening the game executable again. However as it is polling the net api's (Wininet), Rundll will consume a full core (13% for my i7), until you close it. which can cause a number of issues in single core games, and the like.
Various user found fixes are listed on the 'net, but (again from the first thread I link to):
Just wanted to necropost to update the record on how much of a failure this is
==OVER A YEAR LATER AND ITS STILL BROKEN==
best part is, with updates it re-enables itself every so often
actually it's even worse than that now, it's been updated so that none of the above solutions work anymore
if you unregister the dll as per qwadrwr then rundll32.exe will get stuck in limbo trying to load, same if you deny read permissions to the files (albeit it doesn't consume 100% of the core it's running on, it just sits there)... only solution is for those that need it:
run one instance of the software, it will get stuck
run a second instance of the software, gameux is busy doing it's thing so this will launch
taskkill rundll32 responsible for the first instance
So I'm not confident that any easy fix will work. Thanks, Microsoft.