原因是用 GetActiveWindow 获取游戏句柄
假如游戏未打卡时切到别的窗口
读到的句柄就是错的 导致后续判断全错
这是偷懒时候的写法 确实有bug
dll_name="RGSS103J" DLL=Win32API.new('kernel32','GetModuleHandle','p','l').call(dll_name) code = [139,68,36,4,139,128,196,182,18,0,139,64,8,194,16,0].pack('C*') Hwnd = Win32API.new('user32.dll','CallWindowProc','pllll','l').call(code,DLL,0,0,0)
dll_name="RGSS103J"
DLL=Win32API.new('kernel32','GetModuleHandle','p','l').call(dll_name)
code = [139,68,36,4,139,128,196,182,18,0,139,64,8,194,16,0].pack('C*')
Hwnd = Win32API.new('user32.dll','CallWindowProc','pllll','l').call(code,DLL,0,0,0)
你把取句柄的代码改成这段再测试一下
应该没问题了 别的你改的改回去吧..
现在不在家 这是猜的 有问题再说 |