Visualizzazione della finestra nella schermata di accesso mediante C # in Windows XP
-
01-07-2019 - |
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 #?
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.