0

私はこれをインターネット上のいたるところに見つけようとしましたが、運がありませんでした。ログインするたびにプログラムを起動させたい(LoginUI.exe)。ユーザーが自分のコンピューター(Winkey + L)をロックしたことを検出して、プログラムを起動することはできますか?これが不可能な場合、ユーザーがログインした直後を検出する方法はありますか?

4

3 に答える 3

5

SystemEvents次の方法でユーザーセッションの状態を監視するプログラムを作成できますMicrosoft.Win32

// Put this somewhere in your console app/windows form initialization code.
SystemEvents.SessionSwitch += OnSessionSwitch;

// Put this method in your console app/windows form somewhere.
static void OnSessionSwitch(object sender, SessionSwitchEventArgs e)
{
  switch (e.Reason)
  {
    case SessionSwitchReason.SessionLogon:
      // User has logged on to the computer.
      break;

    case SessionSwitchReason.SessionLogoff:
      // User has logged off from the computer.
      break;

    case SessionSwitchReason.SessionUnlock:
      // The computer has been unlocked.
      break;

    case SessionSwitchReason.SessionLock:
      // The computer has been locked.
      break;
  }
}

あなたの場合、またはのいずれかProcess.Start(...)を検出したときに行うことができます。SessionLogonSessionUnlock

于 2013-01-19T22:50:21.543 に答える
0

SOはすでにこの種のことに関するいくつかの情報を持っているようです。C#でのレジストリの変更は、うまくいくように見えます。

ログイン時にプログラムでアプリケーションを起動する

于 2013-01-19T22:37:55.940 に答える
0

これがあなたが男を探しているものだと思います!関連するスニペットは次のとおりです。

WshShell shell = new WshShell();
string shortcutAddress = startupFolder + @"\MyStartupShortcut.lnk";
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "A startup shortcut. If you delete this shortcut from your computer, LaunchOnStartup.exe will not launch on Windows Startup"; // set the description of the shortcut
shortcut.WorkingDirectory = Application.StartupPath; /* working directory */
shortcut.TargetPath = Application.ExecutablePath; /* path of the executable */
shortcut.Save(); // save the shortcut 
于 2013-01-19T22:45:21.957 に答える