使用WPF应用程序进程句柄注册全局热键

时间:2015-12-07 19:34:38

标签: c# wpf winapi

所以我尝试使用RegisterHotKey来注册一个新的热键,但是在传递Process.GetCurrentProcess()时我得到了ERROR_WINDOW_OF_OTHER_THREAD。处理为句柄。我不想使用特定Window的句柄的原因是因为此时还没有任何Windows,所以我只想将热键注册到进程本身,但它似乎不是工作。我得到的错误是因为我没有使用特定Window的句柄,还是与其他东西有关?

1 个答案:

答案 0 :(得分:1)

你做不到。

RegisterHotKey需要一个HWND(即一个Window句柄),而不是一个进程句柄。虽然它们可能是相同的数据结构,但它们具有不同的语义。

RegisterHotkey确保注册窗口接收相关的WM_HOTKEY消息 - 并且没有窗口(即HWND),没有相应的窗口消息循环,其中将处理WM_HOTKEY。