1

スケジュールされたタスクとして実行されるプログラムがあります。プログラムは XP で SYSTEM として実行されます。アイデアは、ユーザーがアクティブな間、プログラムがバックグラウンドで実行されるということです。

特定の状況が発生したときに USER をログオフするプログラムが必要です。

私は使用してみました:

[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReason);

しかし、それはUSERをログオフしていないようです。

SYSTEMとして実行されているため、おそらくSYSTEMをログオフしていると思います。

どうすれば USER をロゴできますか?

ありがとう、サマーバルブ。

4

2 に答える 2

0

のフラグを表示していただけると助かりますが、ExitWindowsEx可能性は低いと思いますが、ユーザーになりすます必要があるかもしれません。現在のユーザーをログオフするだけで十分だったことを覚えている場合は、ログオフを強制する必要がある場合があります。たとえば、ユーザーがいくつかの変更を保存していない場合は、ログオフをキャンセルできるためです。

しかし、ユーザーを偽装するには、これを見ることができます: http://www.codeproject.com/KB/system/UserImpersonation.aspx

ここから始めて、logoff と forceifhung の両方の値を含めます: http://msdn.microsoft.com/en-us/library/aa376868(VS.85).aspx

EWX_FORCEIFHUNG | EWX_LOGOFFパラメータと同様です。

アップデート:

ここではなりすましは役に立たないというマイクの意見は正しいと思います。

于 2010-08-10T15:30:31.630 に答える
0

そのユーザーとしていくつかのコードを実行する必要があると思います。ユーザーのログイン時に実行され、イベントを監視するアプリを作成します。サービスにイベントを設定させると、コードは ExitWindowsEx メソッドを呼び出します。ジェームズが述べたように、引き続き forceifhung および logoff パラメータを使用する必要があります。

于 2010-08-10T16:04:04.957 に答える