2010-12-30 14 views
0

Windows 7でサービスを編集して[ログオン]タブに移動した場合、[サービスとデスクトップとの対話を許可する]オプションがあります。私はそれがVB.NETを使用して特定のサービスのために設定されていることを確認しようとしています。誰かがこれを行う方法を知っていますか? 注:プログラムのインストール中にこれを行うことは、オプションではありません。実行時に実行する必要があります。Windows 7でプログラム設定をVB.NETでプログラマチックに設定する

答えて

1

Call ChangeServiceConfig with SERVICE_INTERACTIVE_PROCESS。 Windows APIを使用する利点は、通知と並行処理の部分を処理し、サービスコントローラーを使用する他のプログラムでキャッシュを無効にする必要があり、何か問題が生じたときにエラーコードが返されることです。一般に、APIを使用して設定を取得/設定できる場合は、レジストリにアクセスしないでください。

1

サービスの構成では、各サービスのためのキーで

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ 

の下に、レジストリに格納されます。

タイプの値の3番目から最後のフラグは、「対話型デスクトップ」の値に対応しているようです。例えば

は、デスクトップと対話しないように設定されたサービスは、の値があります。

:同じサービスのに対し

Type REG_DWORD 0x0000010 (16) 

を、デスクトップとの対話を許可するように設定した場合の値を持っています

Type REG_DWORD 0x0000110 (272) 

私はテストを行っていないため、これは保証されているとは言えませんが、開始するのが良いかもしれません。この値の変更が有効になる前に、サービスを再起動する必要があります。

+0

私はこのためにレジストリのハックをしないほうがいいですが、それになっても機能します。 – dko

+1

これは本当に「ハック」ではありません。この構成パラメーターの値はレジストリーに保管されます。あなたはこのパラメータを設定するためにWindows UIをバイパスしている限りレジストリをハッキングしていません。結局、それは同じことです。 –

+0

はい私はそれが "ハック"ではないことを知っています。私はその言葉をゆるやかに使っていますが、APIやライブラリ呼び出しを好むでしょう。私はあなたに代理人を与えた。ありがとう – dko

関連する問題