NikoTanghe wrote:
Process.start() simply returns, no program is launched, no exception is thrown... what is wrong here ?
The problem is you don't understand how services work. Services run under their own desktop, NOT the users desktop that you can see. The Process.Start() code worked. The application was launched. All you have to do is open TaskManager and click on the Processes tab to see that. You have to configure your service to interact with the users desktop. Click Start/Run, then type SERVICES.MSC and hit enter. Find your service in the list and double-click it. Click on the LogOn tab and find the little check box that says something like "Allow server to interact with desktop" and enable it. Now, YOU HAVE A MUCH BIGGER PROBLEM. Services run all the time, even when noone is logged into the machine. So, with no user desktop to show an app, you're service will still launch the applications, but noone will ever see them because there is no user desktop! Just logging into the machine will NOT automatically show you the launched applications either. They will be running, but on the services desktop only. There is no way to transfer the application between desktops. In order for the logged in user to see them, the applications would have to be killed and restarted. Notice, in the .NET Framework's Service classes, that you don't get any "User logged on" events...
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007