读书人

按键精灵有用过的吗,该怎么处理

发布时间: 2012-02-04 15:43:08 作者: rapoo

按键精灵有用过的吗
它是用
SetWindowsHookEx(WH_JOURNALRECORD。。。
以及
SetWindowsHookEx(WH_JOURNALPLAYBACK这两种hook实现的么?

我用这两种hook做了试例,但在回放的过程中,就不能控制鼠标了,但按键精灵中回放时,还是可以控制鼠标。
这是怎么回事?是我的代码有问题,还是他们根本不是用这种hook实现的?

[解决办法]
不曾用过,
看高手招.
[解决办法]
不是吧?直接先把窗口设成最前,然后给个按钮消息的。

我用C++最近二天试了一下,下面只是控制键盘。我也刚学

void CFSDlg::OnTest()
{
// TODO: Add your control notification handler code here
HANDLE Process=NULL;
if( MyOpenProcess( &Process ) )//打开进程
{
AfxMessageBox( "某某游戏 未运行! ");
return;
}


HWND cWnd = ::FindWindow(NULL, "**游戏 ");
if( cWnd == NULL )
return ;
lBaseAddr=0x01B18AE0;

/*
if( ReadProcessMemory(Process,(LPVOID)(lBaseAddr),&lRenAdd,4,NULL) == TRUE )//读取游戏 内存数据
{
CString aaa;
aaa.Format( "%d ",lRenAdd);
::AfxMessageBox(aaa);

}
CloseHandle(Process);
*/


//这是关键
::SetForegroundWindow(cWnd);//设置 该游戏向前

::SetActiveWindow(cWnd);//该游戏在WINDOWS中成激活窗口状态


int iKey= 49;//49是键盘的1键
::keybd_event(VK_F5,0,0,0);//按下1键
::keybd_event(VK_F5,0,KEYEVENTF_KEYUP,0);//1键返回


}
[解决办法]
不用hook
按键精灵用的是VBScript + mouse_event +keydb_event做的

具体原理可以去看这个
http://dev.csdn.net/article/63/63483.shtm
[解决办法]
用SendInput,keydb_event过时了

读书人网 >.NET

热点推荐