Windows XP で C# を使用してログオン画面にウィンドウを表示する
-
01-07-2019 - |
質問
Windows XPのログオン画面に表示できるプロセスを起動するサービスをC#で作成しようとしています。
C++ でこれを実行しているコードをいくつか見つけました。C++ コードは、STARTUPINFO.lpDesktop を "WinSta0\WinLogon" に設定して別のプロセスを作成するサービス用です。作成されたプロセスは Windows ログオン画面に表示されます。System.Diagnostic.Process クラスを使用して C# で新しいプロセスの「デスクトップ」を指定する方法が見つからないようです。
C#でこれを行う方法を知っている人はいますか?
解決
解決策は、C# コードの kernel32.dll から C++ Win32 API 関数 CreateProcess を呼び出すことでした。このサイトは、C# の正しい関数シグネチャを取得するのに非常に役立ちました。
http://www.pinvoke.net/default.aspx/kernel32/CreateProcess.html
他のヒント
C++ で記述し、それを DLL にコンパイルして、マネージ コードから DLL を呼び出す必要があると思います。
所属していません StackOverflow