使用WINDOW API 里的SendMessage函数。
例如:
SendMessage(hwndTargetApplication, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
hwndTargetApplication:目标程序的句柄
WM_SYSCOMMAND:消息通知码
SC_MAXIMIZE:消息附加项
上面这个API是向某个目标程序发送一个窗体最大化指令。
这个也会被限制的,操作频繁有可能被腾讯封号哦
晕,你看一下MSDN啊,里面有参数介绍的。
每个键也有其键值,比如VK_UP(方向键上) VK_F1(F1键) 'a'(相当于按键A)
sendkeys (键名)
按下组合键Alt+N
PostMessage hwnd,WM_KEYDOWN,vbKeyAlt,0 '按下Alt
PostMessage hwnd,WM_KEYDOWN,vbKeyN,0 '按下N
'抬起组合键Alt+N
PostMessage hwnd,WM_KEYUP,vbKeyAlt,0 '抬起Alt
PostMessage hwnd,WM_KEYUP,vbKeyN,0 '抬起N
'按下F3
PostMessage hwnd,WM_KEYDOWN,vbKeyF3,0 '按F3
PostMessage hwnd,WM_KEYUP,vbKeyF3,0
SendMessage Platform SDK的函数原型似乎该是这样
LRESULT SendMessage(
HWND hWnd, // handle to destination window
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
而且,发送按键值一般用 WM_CHAR 捕获后在窗口过程函数中处理
个人见解^_^
hWnd1 = FindWindow(vbNullString, 1.txt - 记事本)
hWnd2 = FindWindowEx(hWnd1, 0, Edit, vbNullString)
keybd_event VK_MENU, 0, 0, 0
PostMessage hWnd2, WM_KEYDOWN, vbKeyN, 0
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
PostMessage hWnd2, WM_KEYDOWN, vbKeyF3, 0 '按下F3键
这样不知道符合楼主不?
如果对普通的窗口发送就直接sendkeys,如果对高级一点的窗口发就用KEYBOARD_EVENT这个API函数,如果对高级游戏窗口发送按键消息一般就要用到驱动级WINIO模拟按键了,不知道你想用哪种我给一个keyboard_event函数模拟键盘按键的代码吧通用部分声明:Private Declare Sub keybd_event Lib user32 (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 窗体部分,也就是按键实现代码:keybd_event vbKeyUp, 0, 0, 0 '按下↑键
keybd_event vbKeyUp, 0, 2, 0 '释放↑键 这里模拟按上下方向键你自己改一下就行了