如何设置与WH_FOREGROUNDIDLE
的Windows挂钩以及以下回调函数
DWORD CALLBACK ForegroundIdleProc( __in int code, DWORD wParam, LONG lParam );
我正在尝试检测线程/进程何时进入空闲状态。
我已使用以下函数获取threadProccessId
:
GetForegroundWindow -> GetWindowThreadProcessId.
答案 0 :(得分:0)
public static interface ForegroundIdleProc extends Callback(){
int invoke(int code, int wParam , NativeLong lParam);
}
/*....Usage....*/
ForegroundIdleProc proc = new ForegroundIdleProc(){
int invoke(int code, int wParam , NativeLong lParam){
/* Handle callback */
/*Make sure you define this function first.*/
return NativeLibrary.Instance.CallNextHookEx(NULL , code , wParam , lParam);
}
}
NativeLibrary.Instance.SetWindowsHookEx(WH_FOREGROUNDIDLE , proc , etc etc);
编辑:添加了退货声明。
答案 1 :(得分:0)
扩展StdCallCallback而不是Callback,以便使用正确的调用约定来调用回调。在win32下,宏“CALLBACK”通常会解析为_stdcall。