最近测试了一段罗技鼠标宏的编程,用来实现鼠标压枪的效果,在测试过程中发现,由于鼠标宏是一个单线程,所以在执行的过程中不能进行多线程编程,这就导致了循环必须有结束条件,否则,驱动程序会出现崩溃,那一层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





Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐