|
代码目的是在有鼠标或键盘输入事件时计算下上次离开到目前的空闲时间
在鼠标钩子中计算正常
在键盘钩子中空闲时间一直是0,不懂是什么原因,请大家指教!
- import win.ui;
- /*DSG{{*/
- var winform = win.form(text="aardio form";right=759;bottom=469)
- winform.add()
- /*}}*/
- import console
- import mouse.hook;
- import key.hook;
- hkmouse = mouse.hook()
- hkmouse.proc = function(msg,x,y,mouseData,injected,flags,timeStamp,extraInfo){
- if( injected ) return;
- var ret,info = ::User32.GetLastInputInfo( {INT size = 8;INT time} );
- console.log("空闲时间:"++win.getIdleTime() ,"本次触发时间:"++timeStamp,"上次触发时间:"++info.time)
-
- }
- hkkey = key.hook();
- hkkey.proc = function(msg,vkcode,scancode,injected,flags,timeStamp,extraInfo){
- if( injected ) return;
-
- select(msg) {
- case 0x100/*_WM_KEYDOWN*/ ,0x104/*_WM_SYSKEYDOWN*/{
- var ret,info = ::User32.GetLastInputInfo( {INT size = 8;INT time} );
- console.log("按下空闲时间:"++win.getIdleTime() ,"本次触发时间:"++timeStamp,"上次触发时间:"++info.time)
- }
- case 0x101/*_WM_KEYUP*/,0x105/*_WM_SYSKEYUP*/{
- var ret,info = ::User32.GetLastInputInfo( {INT size = 8;INT time} );
- console.log("抬起空闲时间:"++win.getIdleTime() ,"本次触发时间:"++timeStamp,"上次触发时间:"++info.time)
- }
-
- }
- }
- winform.onClose = function(hwnd,message,wParam,lParam){
- hkmouse.close()
- hkkey.close()
- }
- winform.show();
- win.loopMessage();
复制代码
|
|