Domanda

Sto provando a creare un servizio con C # che avvia un processo che può essere visualizzato nella schermata di accesso di Windows XP.

Ho trovato del codice che lo sta facendo in C ++. Il codice C ++ è per un servizio che crea un altro processo con STARTUPINFO.lpDesktop impostato su " WinSta0 \ WinLogon " ;. Il processo creato viene quindi visualizzato nella schermata di accesso a Windows. Non riesco a trovare un modo per specificare il "desktop" di un nuovo processo in C # usando la classe System.Diagnostic.Process.

Qualcuno sa come farlo con C #?

È stato utile?

Soluzione

La soluzione era chiamare la funzione API Win32 C ++ CreateProcess da kernel32.dll dal codice C #. Questo sito è stato molto utile per ottenere la firma della funzione corretta per C #:

http://www.pinvoke.net/default.aspx/kernel32 /CreateProcess.html

Altri suggerimenti

Penso che dovrai scriverlo in C ++, compilarlo in una DLL e quindi chiamare la DLL dal tuo codice gestito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top