最近测试了一段罗技鼠标宏的编程,用来实现鼠标压枪的效果,在测试过程中发现,由于鼠标宏是一个单线程,所以在执行的过程中不能进行多线程编程,这就导致了循环必须有结束条件,否则,驱动程序会出现崩溃,那一层for循环要有一定的限度。当我在使用while进行死循环接受鼠标事件的时候发现了这个问题。
并且加入了一个键盘开关,用来开启和关闭这个宏,我这里使用的是文档中提供的函数来实现(具体的可以参考官方文档)
function OnEvent(event, arg)
OutputLogMessage("event = %s, arg = %s\n", event, arg)
EnablePrimaryMouseButtonEvents(true) ;--鼠标左键开启
if(IsMouseButtonPressed(1) and IsKeyLockOn("capslock")) then
if(arg == 1) then
for i = 0 ,1000 do
if(IsMouseButtonPressed(1) ) then
MoveMouseRelative(0,3)
Sleep(8)
OutputLogMessage("hello")
end
end
end
end
end