質問

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 を呼び出す必要があると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top