ShellExecute requires that there be a calling hWnd - a parent.
So, it can only be called when there is a window associated with the process that wants to make the call.