再求助:如何让正在忙时的程序马上响应钩子
我有一个很消耗时间的操作,想在它操作时我按下f2键就出现输入密码对话框来锁定界面,这样可以让我安全地离开电脑去干别的事,而操作照常进行,其他人还可以使用我的电脑(但没有密码就动不了我的程序)。于是我使用了钩子:
键盘钩子--
挂钩:g_hHookKbd = SetWindowsHookEx(WH_KEYBOARD,MyKbdHook,nullptr, GetCurrentThreadId());
钩子函数:LRESULT CALLBACK MyKbdHook(int code,WPARAM wp,LPARAM lp)
{
if(wp==VK_F2)
{
... //锁定程序界面
}
return CallNextHookEx(g_hHookKbd,code,wp,lp);
}
上述代码在程序空闲时可以正确执行,但我的程序正在执行一项很耗时的操作,完成以后才能响应上述的钩子,因此没有实现我的要求:一旦按下f2,就马上执行钩子过程(即出现输入密码对话框来锁定程序!)
请教这里的高手朋友:如何才能实现程序忙时也能让钩子马上起作用呢?