2015-12-07 29 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。