|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
下面的源码的功用为后台组合键,这是我在按键论坛找到的,某些窗口适用
- Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
- Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
- Const WM_KEYDOWN = &H100
- Const WM_KEYUP = &H101
- Const WM_CHAR = &H102
- Const WM_SYSKEYDOWN = &H104
- Const WM_SYSKEYUP = &H105
- Const WM_SYSCHAR = &H106
- Const WM_LBUTTONDOWN = &H201
- Const WM_LBUTTONUP = &H202
- Const WM_RBUTTONDOWN = &H204
- Const WM_RBUTTONUP = &H205
- Function MakeKeyLparam(VirtualKey,flag)
- Dim s,Firstbyte'lparam参数的24-31位
- Select Case flag
- Case WM_KEYDOWN
- Firstbyte = "00"
- Case WM_KEYUP
- Firstbyte = "C0" '如果是释放键
- Case WM_CHAR
- Firstbyte = "C0"
- Case WM_SYSKEYDOWN
- Firstbyte = "20"
- Case WM_SYSKEYUP
- Firstbyte = "E0"
- Case WM_SYSCHAR
- Firstbyte = "E0"
- End Select
- Dim Scancode
- '获得键的扫描码
- Scancode = MapVirtualKey(VirtualKey, 0)
- Dim Secondbyte 'lparam参数的16-23位,即虚拟键扫描码
- Secondbyte = Right("00" & Hex(Scancode), 2)
- s = Firstbyte & Secondbyte & "0001" '0001为lparam参数的0-15位,即发送次数和其它扩展信息
- MakeKeyLparam = Eval("&H" & s)
- End Function
- Function SendAltPlusKey(Hwnd,Key)
- Dim vkey
- vkey = Eval("&H" & Hex(Key))
- PostMessage hwnd, WM_SYSKEYDOWN, &H12, MakeKeyLparam(&H12, WM_SYSKEYDOWN)
- PostMessage hwnd, WM_SYSKEYDOWN, vkey, MakeKeyLparam(vkey, WM_SYSKEYDOWN)
- PostMessage hwnd, WM_SYSKEYUP, vkey, MakeKeyLparam(vkey, WM_SYSKEYUP)
- PostMessage hwnd, WM_KEYUP, &H12, MakeKeyLparam(&H12, WM_KEYUP)
- End Function
- Function SendCtrlPlusKey(Hwnd,Key)
- Dim vkey
- vkey = Eval("&H" & Hex(Key))
- KeyDown 17, 1
- //PostMessage hwnd, WM_KEYDOWN, &H11, MakeKeyLparam(&H11, WM_KEYDOWN)
- PostMessage hwnd, WM_KEYDOWN, vkey, MakeKeyLparam(vkey, WM_KEYDOWN)
- PostMessage hwnd, WM_KEYUP, vkey, MakeKeyLparam(vkey, WM_KEYUP)
- KeyUp 17, 1
- //PostMessage hwnd, WM_KEYUP, &H11, MakeKeyLparam(&H11, WM_KEYUP)
- End Function
- Function SendLclick(hwnd,x,y)
- PostMessage hwnd, WM_LBUTTONDOWN, 0, Eval("&H" & Hex(y * 65536 + x))
- PostMessage hwnd, WM_LBUTTONUP, 0, Eval("&H" & Hex(y * 65536 + x))
- End Function
- Function SendRclick(hwnd,x,y)
- PostMessage hwnd, WM_RBUTTONDOWN, 0, Eval("&H" & Hex(y * 65536 + x))
- PostMessage hwnd, WM_RBUTTONUP, 0, Eval("&H" & Hex(y * 65536 + x))
- End Function
- Function SendKey(hwnd, key)
- Dim vkey
- vkey = Eval("&H" & Hex(Key))
- PostMessage hwnd, WM_KEYDOWN, vkey, MakeKeyLparam(vkey, WM_KEYDOWN)
- PostMessage hwnd, WM_KEYUP, vkey, MakeKeyLparam(vkey, WM_KEYUP)
- End Function
- //运行notepad
- RunApp "notepad.exe"
- Delay 100
- Hwnd = Plugin.Window.Find("Notepad", 0)
- Hwndex =Plugin.Window.FindEx(Hwnd,0,"edit",0) //获取edit窗口句柄
- //输入点数据
- For k=0 to 9
- For i= 0 to 9
- SendKey hwndex, 48+(k+i) mod 10
- Delay 10
- Next
- SendKey hwndex, 13
- Next
- SendCtrlPlusKey Hwndex,65 //ctrl+a 全选
- Delay 500
- SendRclick Hwndex, 100, 100 //窗口坐标(100,100)处点击右键
- Delay 500
- SendKey hwndex, 67 //按c复制
- Delay 500
- SendLclick Hwndex, 1, 170 //窗口坐标(1,170)处点击左键
- Delay 100
- SendRclick Hwndex, 1, 170 //窗口坐标(1,170)处点击左键
- Delay 500
- SendKey hwndex, 80 //按p粘贴
- Delay 100
复制代码
按键精灵复制贴上可以直接使用,有人能帮翻成TC能使用的格式吗?
另外TC好像也有同样的API postmessage(hwnd,msg,wparam,iparam)
要怎样应用能跟上面源码有相同功用?
另外求有关TC调用Win API相关影片教程,最近好像常用到这类东西
|
|