2015-12-07 62 views
0

所以我試圖用RegisterHotKey來註冊一個新的熱鍵,但是在傳遞Process.GetCurrentProcess()時我得到了ERROR_WINDOW_OF_OTHER_THREAD。我不想使用特定窗口句柄的原因是因爲此時不存在任何Windows,所以我只想在流程本身註冊熱鍵,但似乎並不是加工。我得到的錯誤是因爲我沒有使用特定窗口的句柄,還是與其他內容有關?使用WPF應用程序進程句柄來註冊全局熱鍵

+0

創建一個[Message-Only窗口](https://msdn.microsoft.com/en-us/library/windows/desktop/ms632599.aspx#message_only)與[RegisterHotKey](https:// msdn)一起使用.microsoft.com/EN-US /庫/窗/臺式機/ ms646309.aspx)。 – IInspectable

+0

謝謝,我認爲這工作 – Fabis

回答

1

你不能那樣做。

RegisterHotKey需要一個HWND(即一個窗口句柄),而不是一個進程句柄。雖然它們可能是相同的數據結構,但它們具有不同的語義。

RegisterHotkey確保註冊窗口接收到相關WM_HOTKEY消息 - 並且沒有窗口(即HWND),則沒有相應的窗口消息循環來處理WM_HOTKEY。