16 个解决方案
#1
那就要向系统的消息队列里插入鼠标事件了
使用SendInput吧.
使用SendInput吧.
#2
http://www.m5home.com/bbs/dispbbs.asp?boardID=2&ID=1283&page=1
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
#3
如果是指定窗口则sendmessage,postmessage都可以
如果是当前窗口mouse_event就可以了
如果是当前窗口mouse_event就可以了
#4
那就要向系统的消息队列里插入鼠标事件了
使用SendInput吧.
---------------------------------------
能再详细点吗?
http://www.m5home.com/bbs/dispbbs.asp?boardID=2&ID=1283&page=1
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
----------------------------------------
虽然是说键盘方面与问题相关不大,不过很值得一看,收藏了。
如果是指定窗口则sendmessage,postmessage都可以
如果是当前窗口mouse_event就可以了
----------------------------------------
mouse_event不仅用于当前窗口,整个屏幕都有效,而且我试了很多次了,始终无法脱离鼠标,单击的地方总是鼠标所在点,即使设置了绝对位置也一样,我要的是鼠标在屏幕里的位置与单击的位置不在同个点上。我给出我的代码,帮我看下是不是哪里有问题,感觉好像是设置绝对位置比起作用。
Option Explicit
Private Declare Sub mouse_event Lib "user32" _
( _
ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As Long _
)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
'每隔一秒中模拟一次鼠标事件
Private Sub Timer1_Timer()
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 100, 100, 0, 0
End Sub
不管有没加MOUSEEVENTF_ABSOLUTE,后边的参数怎么改,单击的位置始终还是屏幕鼠标所在位置,请高手过过目。
使用SendInput吧.
---------------------------------------
能再详细点吗?
http://www.m5home.com/bbs/dispbbs.asp?boardID=2&ID=1283&page=1
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
----------------------------------------
虽然是说键盘方面与问题相关不大,不过很值得一看,收藏了。
如果是指定窗口则sendmessage,postmessage都可以
如果是当前窗口mouse_event就可以了
----------------------------------------
mouse_event不仅用于当前窗口,整个屏幕都有效,而且我试了很多次了,始终无法脱离鼠标,单击的地方总是鼠标所在点,即使设置了绝对位置也一样,我要的是鼠标在屏幕里的位置与单击的位置不在同个点上。我给出我的代码,帮我看下是不是哪里有问题,感觉好像是设置绝对位置比起作用。
Option Explicit
Private Declare Sub mouse_event Lib "user32" _
( _
ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As Long _
)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
'每隔一秒中模拟一次鼠标事件
Private Sub Timer1_Timer()
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 100, 100, 0, 0
End Sub
不管有没加MOUSEEVENTF_ABSOLUTE,后边的参数怎么改,单击的位置始终还是屏幕鼠标所在位置,请高手过过目。
#5
虽然是说键盘方面与问题相关不大,不过很值得一看,收藏了。
//
后面有说到鼠标的模拟.
另外,自己写一写SendInput的鼠标包试一下
我之前试过在CS中自动开枪,星际中自动输"show me the money"十次,都是用那个驱动完成的
SendInput在3D程序里面好象并不好使....貌似这类游戏取得鼠标键盘的方式是另一套机制,比如DirectInput...
不过你是在桌面,那就用SendInput吧.
//
后面有说到鼠标的模拟.
另外,自己写一写SendInput的鼠标包试一下
我之前试过在CS中自动开枪,星际中自动输"show me the money"十次,都是用那个驱动完成的
SendInput在3D程序里面好象并不好使....貌似这类游戏取得鼠标键盘的方式是另一套机制,比如DirectInput...
不过你是在桌面,那就用SendInput吧.
#6
星际中自动输"show me the money"十次
老马好贪心啊
老马好贪心啊
#7
#8
学习
#9
老马好贪心啊
//
哈哈哈哈哈哈
没办法,我星际超菜啊~~~钱用得差不多了就输口令...可是麻烦,我就弄了个Ctrl + F12,按一次就十次,哈哈
//
哈哈哈哈哈哈
没办法,我星际超菜啊~~~钱用得差不多了就输口令...可是麻烦,我就弄了个Ctrl + F12,按一次就十次,哈哈
#10
直接power overwhelming 不方便点? 挖哈哈
#11
呵呵,我玩的时候是强迫自己不作弊的,感觉这样打赢了比较爽。
谢谢咯,我再研究看看,那天看了那个键盘驱动的知识后我也想过鼠标是不是也可以这样,不过也只是想过去而已,没认真去研究。
多给点东西,我好少走点弯路嘛,别一句一句的,你那个CS中自动开枪的听起来感觉不错,说一下你那套思路行吗。
谢谢咯,我再研究看看,那天看了那个键盘驱动的知识后我也想过鼠标是不是也可以这样,不过也只是想过去而已,没认真去研究。
多给点东西,我好少走点弯路嘛,别一句一句的,你那个CS中自动开枪的听起来感觉不错,说一下你那套思路行吗。
#12
你那个CS中自动开枪的听起来感觉不错
//
其实就是一个自动压枪,呵呵
我用HOOK拦截鼠标,然后检测
如果按下时间高于0.2-0.4秒,就认为是在连发
于是就自动向下修正枪口
我大概地录了M4,AK,AUG,SIG552这四种枪的弹道,然后反向计算得到修正值,使用Ctrl + F1到F4就可以切换了
不过最终效果很不理想,呵呵
因为在运动中开枪时的弹道与静止时又是不同
后来就懒得搞了~~~~反正好久都没时间玩CS了
//
其实就是一个自动压枪,呵呵
我用HOOK拦截鼠标,然后检测
如果按下时间高于0.2-0.4秒,就认为是在连发
于是就自动向下修正枪口
我大概地录了M4,AK,AUG,SIG552这四种枪的弹道,然后反向计算得到修正值,使用Ctrl + F1到F4就可以切换了
不过最终效果很不理想,呵呵
因为在运动中开枪时的弹道与静止时又是不同
后来就懒得搞了~~~~反正好久都没时间玩CS了
#13
哇,,,厉害啊,连弹道这方面都给你想到了,还真是服了你,要是让你搞出来了不天下无敌了,哈哈。
#14
玩星际我也就用用地图全开
#15
我还用 operation cawl
#16
暂时先这样吧,有进展再开新帖。
#17
老马兄
刚才搜到一篇“如何把一个exe注册成系统服务?”,我也想知道这方面的知识。
“可能是一个普通的EXE吧?要自己写一套服务消息处理代码的....”能再说详细点吗,如何弄才能做出一个能服务里运行起来的EXE?
还有就是做好这个特殊的EXE后如何将其变为系统服务?
似乎你有源码哦,可以的话发份给我,当然最好还是指导一下比较好,毕竟在一无所知的情况下去研究一份源码是很累人的事,呵呵,7286729@QQ.COM
先谢过了。
刚才搜到一篇“如何把一个exe注册成系统服务?”,我也想知道这方面的知识。
“可能是一个普通的EXE吧?要自己写一套服务消息处理代码的....”能再说详细点吗,如何弄才能做出一个能服务里运行起来的EXE?
还有就是做好这个特殊的EXE后如何将其变为系统服务?
似乎你有源码哦,可以的话发份给我,当然最好还是指导一下比较好,毕竟在一无所知的情况下去研究一份源码是很累人的事,呵呵,7286729@QQ.COM
先谢过了。
#1
那就要向系统的消息队列里插入鼠标事件了
使用SendInput吧.
使用SendInput吧.
#2
http://www.m5home.com/bbs/dispbbs.asp?boardID=2&ID=1283&page=1
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
#3
如果是指定窗口则sendmessage,postmessage都可以
如果是当前窗口mouse_event就可以了
如果是当前窗口mouse_event就可以了
#4
那就要向系统的消息队列里插入鼠标事件了
使用SendInput吧.
---------------------------------------
能再详细点吗?
http://www.m5home.com/bbs/dispbbs.asp?boardID=2&ID=1283&page=1
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
----------------------------------------
虽然是说键盘方面与问题相关不大,不过很值得一看,收藏了。
如果是指定窗口则sendmessage,postmessage都可以
如果是当前窗口mouse_event就可以了
----------------------------------------
mouse_event不仅用于当前窗口,整个屏幕都有效,而且我试了很多次了,始终无法脱离鼠标,单击的地方总是鼠标所在点,即使设置了绝对位置也一样,我要的是鼠标在屏幕里的位置与单击的位置不在同个点上。我给出我的代码,帮我看下是不是哪里有问题,感觉好像是设置绝对位置比起作用。
Option Explicit
Private Declare Sub mouse_event Lib "user32" _
( _
ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As Long _
)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
'每隔一秒中模拟一次鼠标事件
Private Sub Timer1_Timer()
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 100, 100, 0, 0
End Sub
不管有没加MOUSEEVENTF_ABSOLUTE,后边的参数怎么改,单击的位置始终还是屏幕鼠标所在位置,请高手过过目。
使用SendInput吧.
---------------------------------------
能再详细点吗?
http://www.m5home.com/bbs/dispbbs.asp?boardID=2&ID=1283&page=1
这里后面有讲到驱动级模拟的
驱动的代码也有,你看看吧
----------------------------------------
虽然是说键盘方面与问题相关不大,不过很值得一看,收藏了。
如果是指定窗口则sendmessage,postmessage都可以
如果是当前窗口mouse_event就可以了
----------------------------------------
mouse_event不仅用于当前窗口,整个屏幕都有效,而且我试了很多次了,始终无法脱离鼠标,单击的地方总是鼠标所在点,即使设置了绝对位置也一样,我要的是鼠标在屏幕里的位置与单击的位置不在同个点上。我给出我的代码,帮我看下是不是哪里有问题,感觉好像是设置绝对位置比起作用。
Option Explicit
Private Declare Sub mouse_event Lib "user32" _
( _
ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As Long _
)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
'每隔一秒中模拟一次鼠标事件
Private Sub Timer1_Timer()
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 100, 100, 0, 0
End Sub
不管有没加MOUSEEVENTF_ABSOLUTE,后边的参数怎么改,单击的位置始终还是屏幕鼠标所在位置,请高手过过目。
#5
虽然是说键盘方面与问题相关不大,不过很值得一看,收藏了。
//
后面有说到鼠标的模拟.
另外,自己写一写SendInput的鼠标包试一下
我之前试过在CS中自动开枪,星际中自动输"show me the money"十次,都是用那个驱动完成的
SendInput在3D程序里面好象并不好使....貌似这类游戏取得鼠标键盘的方式是另一套机制,比如DirectInput...
不过你是在桌面,那就用SendInput吧.
//
后面有说到鼠标的模拟.
另外,自己写一写SendInput的鼠标包试一下
我之前试过在CS中自动开枪,星际中自动输"show me the money"十次,都是用那个驱动完成的
SendInput在3D程序里面好象并不好使....貌似这类游戏取得鼠标键盘的方式是另一套机制,比如DirectInput...
不过你是在桌面,那就用SendInput吧.
#6
星际中自动输"show me the money"十次
老马好贪心啊
老马好贪心啊
#7
#8
学习
#9
老马好贪心啊
//
哈哈哈哈哈哈
没办法,我星际超菜啊~~~钱用得差不多了就输口令...可是麻烦,我就弄了个Ctrl + F12,按一次就十次,哈哈
//
哈哈哈哈哈哈
没办法,我星际超菜啊~~~钱用得差不多了就输口令...可是麻烦,我就弄了个Ctrl + F12,按一次就十次,哈哈
#10
直接power overwhelming 不方便点? 挖哈哈
#11
呵呵,我玩的时候是强迫自己不作弊的,感觉这样打赢了比较爽。
谢谢咯,我再研究看看,那天看了那个键盘驱动的知识后我也想过鼠标是不是也可以这样,不过也只是想过去而已,没认真去研究。
多给点东西,我好少走点弯路嘛,别一句一句的,你那个CS中自动开枪的听起来感觉不错,说一下你那套思路行吗。
谢谢咯,我再研究看看,那天看了那个键盘驱动的知识后我也想过鼠标是不是也可以这样,不过也只是想过去而已,没认真去研究。
多给点东西,我好少走点弯路嘛,别一句一句的,你那个CS中自动开枪的听起来感觉不错,说一下你那套思路行吗。
#12
你那个CS中自动开枪的听起来感觉不错
//
其实就是一个自动压枪,呵呵
我用HOOK拦截鼠标,然后检测
如果按下时间高于0.2-0.4秒,就认为是在连发
于是就自动向下修正枪口
我大概地录了M4,AK,AUG,SIG552这四种枪的弹道,然后反向计算得到修正值,使用Ctrl + F1到F4就可以切换了
不过最终效果很不理想,呵呵
因为在运动中开枪时的弹道与静止时又是不同
后来就懒得搞了~~~~反正好久都没时间玩CS了
//
其实就是一个自动压枪,呵呵
我用HOOK拦截鼠标,然后检测
如果按下时间高于0.2-0.4秒,就认为是在连发
于是就自动向下修正枪口
我大概地录了M4,AK,AUG,SIG552这四种枪的弹道,然后反向计算得到修正值,使用Ctrl + F1到F4就可以切换了
不过最终效果很不理想,呵呵
因为在运动中开枪时的弹道与静止时又是不同
后来就懒得搞了~~~~反正好久都没时间玩CS了
#13
哇,,,厉害啊,连弹道这方面都给你想到了,还真是服了你,要是让你搞出来了不天下无敌了,哈哈。
#14
玩星际我也就用用地图全开
#15
我还用 operation cawl
#16
暂时先这样吧,有进展再开新帖。
#17
老马兄
刚才搜到一篇“如何把一个exe注册成系统服务?”,我也想知道这方面的知识。
“可能是一个普通的EXE吧?要自己写一套服务消息处理代码的....”能再说详细点吗,如何弄才能做出一个能服务里运行起来的EXE?
还有就是做好这个特殊的EXE后如何将其变为系统服务?
似乎你有源码哦,可以的话发份给我,当然最好还是指导一下比较好,毕竟在一无所知的情况下去研究一份源码是很累人的事,呵呵,7286729@QQ.COM
先谢过了。
刚才搜到一篇“如何把一个exe注册成系统服务?”,我也想知道这方面的知识。
“可能是一个普通的EXE吧?要自己写一套服务消息处理代码的....”能再说详细点吗,如何弄才能做出一个能服务里运行起来的EXE?
还有就是做好这个特殊的EXE后如何将其变为系统服务?
似乎你有源码哦,可以的话发份给我,当然最好还是指导一下比较好,毕竟在一无所知的情况下去研究一份源码是很累人的事,呵呵,7286729@QQ.COM
先谢过了。