【发布时间】:2015-06-06 02:41:02
【问题描述】:
我从 C# 开始,用 Java 编写了很多代码,但在这里遇到了一些麻烦。我正在尝试学习如何将MouseKeyHook 用于我正在开发的应用程序。我无法让实际的侦听器触发事件。这是我的监听器代码:
using System;
using System.Windows.Forms;
using Gma.System.MouseKeyHook;
namespace ChromaHeatmap
{
class keyListener
{
private IKeyboardMouseEvents m_GlobalHook;
public void Subscribe()
{
// Note: for the application hook, use the Hook.AppEvents() instead
m_GlobalHook = Hook.GlobalEvents();
m_GlobalHook.KeyPress += GlobalHookKeyPress;
}
private void GlobalHookKeyPress(object sender, KeyPressEventArgs e)
{
Console.WriteLine("blah");
}
public void Unsubscribe()
{
m_GlobalHook.KeyPress -= GlobalHookKeyPress;
//It is recommened to dispose it
m_GlobalHook.Dispose();
}
}
}
这是我的应用程序代码的一部分,我尝试对侦听器做一些事情。如果有人可以让我知道最好的方法是在这里循环并等待事件,我将不胜感激。
//Listen for key presses
keyListener heyListen = new keyListener();
heyListen.Subscribe();
while(true)
{
}
【问题讨论】:
-
我想指出,这主要是来自开发者的示例代码(针对听众)
-
这段代码是从哪里运行的?
while循环肯定会弄乱消息泵,摆脱它。
标签: c# windows mousekeyhook