RT,
主要是怎样对鼠标的坐标,移动进行控制。不要转一些没有意义的贴子,网上winio/mouse找过很多,都没有好用的.有demo可以传给我个最好,好用的话马上给分,[email protected]
有这方面的技术资料也可以。
期待高手帮下忙.谢谢
主要是怎样对鼠标的坐标,移动进行控制。不要转一些没有意义的贴子,网上winio/mouse找过很多,都没有好用的.有demo可以传给我个最好,好用的话马上给分,[email protected]
有这方面的技术资料也可以。
期待高手帮下忙.谢谢
解决方案 »
- 如何使用 hook 截获Windows消息(WM_)而不再转发
- CFile 如何写入文件
- 在VC中用fopen("","a")写txt文件时,操作几次就出现错误。
- 工具栏的添加(VC)
- 工具箱里的控件各属于什么类阿?模糊!
- ◢◤ 除了用全局Hook外,还有什么方法可以检测另一个进程的窗口的消息? ◥◣
- 有谁会用UNICODE?
- 有谁知道如何用程序判断ATX机箱或AT机箱的办法?(在线等待)
- VS2005编译器的命令行参数设置
- 请问如何得到网卡的guid?
- 关于IPV6 RawSocket中ioctlsocket SIO_RCVALL出现10022错误的
- 利用Windows XP Service Pack 2 Checked Build打造Partial Checked Build System
________________________________对啊,就是用想用模拟鼠标控制些东西啊,postmessage可以控制些,不过还有些是控制不了的,如XX游戏,卡巴斯基等..
所以想用WINIO底层模拟控制.但就是一直在网上没找到合理的控制方法,也不知道该查些什么样的书籍,资料等DDK能做这些东西之后正在尝试API实现
______________________________DDK不是很懂,而且弄起DDK来好像很麻烦,而且也不知道DDK如何去实现..而且...
即然WINIO可以模拟键盘及鼠标的控制,我想最好的方法应该还是采用WINIO了,鼠标点击可以实现,只是坐标不知道如何控制,键盘控制没有问题,只是这样..等待高手来帮帮忙吧
void CTestKBDlg::MouseMove(int Fun,int x,int y,int z)//参数说明:功能,x,y,z坐标位置
{
KBCWait4IBE();
SetPortVal(100,211,1);
KBCWait4IBE();
SetPortVal(96,Fun,1); KBCWait4IBE();
SetPortVal(100,211,1);
KBCWait4IBE();
SetPortVal(96,x,1); KBCWait4IBE();
SetPortVal(100,211,1);
KBCWait4IBE();
SetPortVal(96,y,1); KBCWait4IBE();
SetPortVal(100,211,1);
KBCWait4IBE();
SetPortVal(96,z,1);
}/*
MouseMove(9, 0, 0, 0 )//左键按下
MouseMove(8, 0, 0, 0 )//左键放开
MouseMove(10, 0, 0, 0 )//右键按下
MouseMove(8, 0, 0, 0 )//右键放开
MouseMove(12, 0, 0, 0 )//中键按下
MouseMove(8, 0, 0, 0 )//中键放开
MouseMove(8, 0, 5, 0 )//上移5象素
MouseMove(40, 0,(255 xor 5),0 )//下移5象素
MouseMove(24,(255 xor 5), 0, 0 )//左移5象素
MouseMove(8, 5, 0, 0 )//右移5象素
*/
看我打了这么多字,剩120分都给我算了,嘿嘿
给你分不是问题
问题是你发的这个我在网上早看过了啊
你说你试了一下?
OK那么你说的有点用是指什么?
可以的话你把帮我把上面的代码改成
void MoveMouseToPos(POINT)这样一个函数,并让他正常工作么?
能的话,给你120分再给你补80分
你看成不?
气死人了,每次都会在屏幕上移动, 期待高人能点拨下,好让我们这些菜菜们早日找到明灯
Dim I As Integer
Private Sub Command1_Click()
Command2.Enabled = True
Timer1.Interval = Text5.Text
Command1.Enabled = False
End SubPrivate Sub Command2_Click()
Command1.Enabled = TrueCommand2.Enabled = FalseTimer1.Interval = 0
End SubPrivate Sub Form_Load()
If InitializeWinIo = False Then
'痰InitializeWinIo?鑒?潼???埼,???????true,?橙??false
MsgBox "failed"
Unload Me
End If
End SubPrivate Sub Form_Unload(Cancel As Integer)
ShutdownWinIo '?埼?監珂??痰ShutdownWinIo?鑒菌潼???埼
End
End SubPrivate Sub Timer1_Timer()
Dim k
For k = 1 To CInt(Text6.Text)
MyMouseKey Text1.Text, Text2.Text, Text3.Text, Text4.TextMyMouseKey 8, Text2.Text, Text3.Text, Text4.Text
Next
I = I + 1
Label1.Caption = I
If I = 2000 Then
Command2_Click
End If
End SubbasDeclare Function MapPhysToLin Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long
Declare Function UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean
Declare Function GetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean
Declare Function SetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean
Declare Function GetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean
Declare Function SetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean
Declare Function InitializeWinIo Lib "WinIo.dll" () As Boolean
Declare Function ShutdownWinIo Lib "WinIo.dll" () As Boolean
Declare Function InstallWinIoDriver Lib "WinIo.dll" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean
Declare Function RemoveWinIoDriver Lib "WinIo.dll" () As BooleanDeclare Function MapVirtualKey Lib "User32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As LongPublic Const KBC_KEY_CMD = &H64 '键盘命令端口
Public Const KBC_KEY_DATA = &H60 '键盘数据端口Public Const KEYEVENTF_KEYUP = &H2
Sub KBCWait4IBE() '等待键盘缓冲区为空
Dim dwVal As Long
Do
GetPortVal &H64, dwVal, 1
Loop While (dwVal And &H2)
End Sub
Sub MyKeyDown(ByVal vKeyCoad As Long) '模拟按下键,vKeyCoad传入按键的虚拟码
Dim btScancode As Long
btScancode = MapVirtualKey(vKeyCoad, 0)
KBCWait4IBE '发送数据前应该先等待键盘缓冲区为空
SetPortVal KBC_KEY_CMD, &HD2, 1 '发送键盘写入命令 KBCWait4IBE
SetPortVal KBC_KEY_DATA, btScancode, 1 '写入按键信息,按下键
End SubSub MyKeyUp(ByVal vKeyCoad As Long) '模拟释放键,vKeyCoad传入按键的虚拟码
Dim btScancode As Long
btScancode = MapVirtualKey(vKeyCoad, 0)
KBCWait4IBE '等待键盘缓冲区为空
SetPortVal KBC_KEY_CMD, &HD2, 1 '发送键盘写入命令
KBCWait4IBE
SetPortVal KBC_KEY_DATA, (btScancode Or &H80), 1 '写入按键信息,释放键
End SubSub MyKeyDownEx(ByVal vKeyCoad As Long) '偌??铟?湮,??vKeyCoad憷?铟?钴???
Dim btScancode As Long
btScancode = MapVirtualKey(vKeyCoad, 0) KBCWait4IBE '怎逾??????亡
SetPortVal KBC_KEY_CMD, &HD2, 1 '?彡???忑伽值
KBCWait4IBE
SetPortVal KBC_KEY_DATA, &HE0, 1 '?忑?铟??颏汜阌
KBCWait4IBE '怎逾??????亡
SetPortVal KBC_KEY_CMD, &HD2, 1 '?彡???忑伽值
KBCWait4IBE
SetPortVal KBC_KEY_DATA, btScancode, 1 '?忑湮?汜阌,湮?
End Sub
Sub MyKeyUpEx(ByVal vKeyCoad As Long) '偌??铟??衙
Dim btScancode As Long
btScancode = MapVirtualKey(vKeyCoad, 0) KBCWait4IBE '怎逾??????亡
SetPortVal KBC_KEY_CMD, &HD2, 1 '?彡???忑伽值
KBCWait4IBE
SetPortVal KBC_KEY_DATA, &HE0, 1 '?忑?铟??颏汜阌
KBCWait4IBE '怎逾??????亡
SetPortVal KBC_KEY_CMD, &HD2, 1 '?彡???忑伽值
KBCWait4IBE
SetPortVal KBC_KEY_DATA, (btScancode Or &H80), 1 '?忑湮?汜阌,?郫?
End Sub'MyKeyDownEx VK_LEFT '湮瘰郯?
'Sleep 200 '媾?200酴
'MyKeyUpEx VK_LEFT '?郫瘰郯?
'
'Sleep 500
'MyKeyDown VK_SPACE '湮亡太?,窦腧椹?彡?蟓
'MyKeyDown VK_SPACE
'Sleep 200
'MyKeyUp VK_SPACE '?郫亡太?
Sub MyMouseKey(MouseFun As Long, MyMouseX As Long, MyMouseY As Long, MyMouseZ As Long)
' 左键按下(MouseFun=9)。MyMouseX、MyMouseY、MyMouseZ 为0
' 右键按下(MouseFun=10)。MyMouseX、MyMouseY、MyMouseZ 为0
' 中键按下(MouseFun=12)。MyMouseX、MyMouseY、MyMouseZ 为0
' 任意键放开(MouseFun=8)。MyMouseX、MyMouseY、MyMouseZ 为0
' ------------------------------------
' 鼠标上移(MouseFun=8)。MyMouseY为移动距离,最大为255,最小为1。MyMouseX、MyMouseZ 为0
' 鼠标下移(MouseFun=40)。MyMouseY为移动距离,最大为1,最小为255。MyMouseX、MyMouseZ 为0
' 鼠标左移(MouseFun=24)。MyMouseX为移动距离,最大为1,最小为255。MyMouseY、MyMouseZ 为0
' 鼠标右移(MouseFun=8)。MyMouseX为移动距离,最大为255,最小为1。MyMouseY、MyMouseZ 为0
' ------------------------------------
KBCWait4IBE '等待缓冲区为空
SetPortVal 100, 211, 1 '发送鼠标写入命令
KBCWait4IBE '等待缓冲区为空
SetPortVal 96, MouseFun, 1 '发送鼠标动作命令
'-------------------------------------
KBCWait4IBE '等待缓冲区为空
SetPortVal 100, 211, 1 '发送鼠标写入命令
KBCWait4IBE '等待缓冲区为空
SetPortVal 96, MyMouseX, 1 '发送鼠标动作命令
'-------------------------------------
KBCWait4IBE '等待缓冲区为空
SetPortVal 100, 211, 1 '发送鼠标写入命令
KBCWait4IBE '等待缓冲区为空
SetPortVal 96, MyMouseY, 1 '发送鼠标动作命令
'-------------------------------------
KBCWait4IBE '等待缓冲区为空
SetPortVal 100, 211, 1 '发送鼠标写入命令
KBCWait4IBE '等待缓冲区为空
SetPortVal 96, MyMouseZ, 1 '发送鼠标动作命令
End Sub