我为我的程序创建了一些全局热键。当我点击我的热键时,程序会根据热键被按住的时间长短,多次执行热键的任务。我怎样才能解决这个问题,使它每次点击只执行一次任务,不管键被按住多长时间?我曾想过添加一个定时器,但这不是一个很好的解决方案。
我的代码。
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
// Unregisters the hot key with Windows.
[DllImport("user32.dll")]
protected override void WndProc(ref Message keyPressed)
{
if (keyPressed.Msg == 0x0312)
{
int id = keyPressed.WParam.ToInt32();
if (id == 1)
{
MY TASK that needs to only run once
}
}
}
请帮忙,谢谢