请问如何记录一段鼠标操作和进行回放,
用钩子WH_JOURNALPLAYBACK 吗?不知道有没有相关的代码
我尝试总是失败
用钩子WH_JOURNALPLAYBACK 吗?不知道有没有相关的代码
我尝试总是失败
解决方案 »
- 对话框为何没有执行OnDestroy
- 如何点击表框中的内容可将相关内容显示在其属性页中
- SOHO建站代理网诚聘兼职网站长--月薪3000元以上
- 百分请教:关于透明窗体的一个问题!!
- 为什么我的程序会出现这个console窗口,我该怎么搞掉它????
- desktop.ini 和Folder.htt两个文件是病毒产生的吗?怎样改变簇的大小
- 弱质问题 : 请问如何在客户端(基于View/Document的)处理ActiveX的事件?
- richedit 自己实现了一个Ole显示gif图片,拖放后,变成空白,据说重载这两个接口可以正常,但是没有效果,求解???????
- 关于VC BOOST 正则表达式的问题
- 初学者请教一个 问题
- bcgsoft的问题
- com的注册问题???
贴出的是可以的。该篇文章的作者John Robbins是最出名的windows调试专家,写了Windows应用程序调试等几本书,在随书的光盘中有很多有用的代码,其中包括你想要的记录键盘和鼠标操作而完成自动化测试的源代码。要想进一步了解John Robbins可以到他的网站http://www.wintellect.com/去看。该网站是几个人合办的,其中包括著名的《Windows核心编程》一书的作者Jeffrey Richter。
http://www.vccode.com/file_show.php?id=2465
按照msdn上面的方法,我已经能够记录下来鼠标的操作,并且写到一个文本文件中,同时
放在一个EVENTMSG数组中,但是回放的WH_JOURNALPLAYBACK钩子,始终不知道如何使用。
msdn上面的,好像只有录制成js文件的,没有立刻回放的,
不知道有没有人能介绍一下,哪方面说到回放我在网上找到一个vb的回放函数,按大概意识把它改写成vc,但不能够用,不知道问题在那
顺便把代码贴出来问一下,event[]是一个全局的EVENTMSG数组,在纪录时用copymemoy()写入的
LRESULT __declspec(dllexport) __stdcall HookProc_JournalPlayBack(int nCode ,unsigned int wParam,long lParam)
{
int canPlay = 1;
int Result = 0;
BOOL bDelay=true;
int PlayLog=0;
unsigned long lastTime=0; if(nCode < 0 )// 'iCode小于0必须直接调用下一个消息钩子函数
{
Result=CallNextHookEx(g_hook, nCode, wParam, lParam);
}
else if(nCode == HC_SYSMODALON)// Then '不允许回放
{
canPlay = 0;
}
else if(nCode == HC_SYSMODALOFF)// Then '允许回放
{
canPlay = 1;
}
else if ((canPlay == 1)&&(nCode == HC_GETNEXT)) //Then
{
if(bDelay)// Then
{
bDelay = false;
Result = event[PlayLog].time - lastTime;
}
//End If
//'从纪录队列中取出消息并赋予lParam指针指向的EVENTMSG区域
CopyMemory((void*)&lParam, &event[PlayLog], sizeof(lParam));
}
else if ((canPlay == 1) && (nCode == HC_SKIP))// Then
{
lastTime = event[PlayLog].time;
bDelay = true;
PlayLog = PlayLog + 1;
}
//End If
if(PlayLog >= 1000)// Then
{
UnhookWindowsHookEx(g_hook);
} // PlaybackProc = Result;
return Result;
}