0

ホットキーを登録/登録解除するクラスが 1 つあります。アプリケーションが Form Load イベントで開始すると、完全に機能します。

private Hotkey myHotKey;
private IntPtr thisWindow;
    private void Form1_Load(object sender, EventArgs e)
      {
          thisWindow = FindWindow(null, "Form1");
          myHotKey = new Hotkey(thisWindow);
          myHotKey.RegisterHotKeys();

      }

ここでの問題は、起動時にシステム トレイにアプリケーションを非表示にしたいのですが、ホスト キーが登録されていないことです。以下のコードを実行すると、Notify() が正常に表示され、ホットキー以外の他のものは効果がありません。

public Form1()
{
    InitializeComponent();
    notifyIcon1.ContextMenuStrip = contextMenuStrip1;
    notifyIcon1.Click += notifyIcon1_Click;
    notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;
    openToolStripMenuItem.Click += openToolStripMenuItem_Click;
    exitToolStripMenuItem.Click += exitToolStripMenuItem_Click;
    Notify("Application Name", "Application Started...", 1000);
    thisWindow = FindWindow(null, "Form1");
    myHotKey = new Hotkey(thisWindow);
    myHotKey.RegisterHotKeys();
}

私が間違っていることを教えてください。ありがとうございました

4

1 に答える 1

0

助けてくれてありがとう、私はすべてをより良い方法で説明するこの例に出くわしました:

http://www.pinvoke.net/default.aspx/user32/RegisterHotKey.html

hotkey = new GlobalHotkeys();
hotkey.RegisterGlobalHotKey( (int) Keys.F11, GlobalHotkeys.MOD_CONTROL, this.Handle);
于 2013-08-23T13:08:38.813 に答える