Affichage de la fenêtre sur l'écran de connexion à l'aide de C # sous Windows XP
-
01-07-2019 - |
Question
J'essaie de créer un service avec C # qui lance un processus pouvant être affiché sur l'écran d'ouverture de session Windows XP.
J'ai trouvé du code faisant cela en C ++. Le code C ++ concerne un service qui crée un autre processus avec STARTUPINFO.lpDesktop défini sur "WinSta0 \ WinLogon". Le processus créé est ensuite affiché sur l'écran de connexion Windows. Je n'arrive pas à trouver le moyen de spécifier le "bureau" d'un nouveau processus en C # à l'aide de la classe System.Diagnostic.Process.
Quelqu'un sait-il comment faire cela avec C #?
La solution
La solution consistait à appeler la fonction CreateProcess de l'API C ++ Win32 à partir de kernel32.dll à partir du code C #. Ce site a été très utile pour obtenir la signature de fonction correcte pour C #:
http://www.pinvoke.net/default.aspx/kernel32 /CreateProcess.html
Autres conseils
Je pense que vous devrez l'écrire en C ++, le compiler dans une DLL, puis appeler la DLL à partir de votre code managé.