1
我在我的應用程序使用設置多個熱鍵registerHotKey登記在應用程序的多個熱鍵使用RegisterHotKey
Win32.RegisterHotKey(hWndSource.Handle, add, Win32.MOD_CONTROL | Win32.MOD_SHIFT, Win32.VK_KEY_D);
Win32.RegisterHotKey(hWndSource.Handle, manage, Win32.MOD_CONTROL | Win32.MOD_SHIFT, Win32.VK_KEY_M);
這是所有發現和花花公子,但我很困惑與我應該如何捕捉每一個。這裏是熱鍵被按下時發生的過程:
private IntPtr MainWindowProcCatchManageHotkey(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
switch (msg)
{
case Win32.WM_HOTKEY:
if (wParam == (IntPtr)(-16285))
{
CaptureManageHotkey();
}
if (wParam == (IntPtr)(-16303))
{
CaptureSelection();
}
handled = true;
break;
}
return IntPtr.Zero;
}
這是相當貧民窟。它從我測試過的小型計算機上運行,但是如果沒有對發生的事情有更好的理解,我不願意推它。我知道測試wParam的哪些值的唯一原因是我運行了調試器並設置了一個斷點,以便我可以看到傳入該函數的內容。有沒有什麼地方可以查看我的情況下lParam和wParam的值?我想抓住ctrl + shift + d作爲一個,而按Ctrl + shift + m作爲另一個。我在哪裏可以看到這些lParam和wParam應該是什麼?
tl; dr我怎麼知道lParam和wParam我想查找什麼值?
這工作!正如我懷疑的那樣,當我切換電腦並開始再次運行代碼時,原始帖子中wParam的值發生了變化。使用'添加'和'管理'雖然在兩臺電腦上工作! – james