level 1
最简单的实现后台发送按键功能:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const VK_Ctrl = &H11
Const VK_S = &H53
Const KEYEVENTF_KEYUP = &H2 'A
Const WM_KEYDOWN = &H100
Const WM_KEYUP = &H10
Dim Excelhandle As Long
'------------以上为定义----------------
'下面查找目标句柄
Excelhandle = FindWindow("XLMAIN", vbNullString)
'找到后通过句柄发送键值
keybd_event VK_Ctrl, 0, 0, 0 '按下Ctrl键
PostMessage Excelhandle, WM_KEYDOWN, VK_S, 0 '发送S键
Sleep 50 '延时50ms,自行适当调整甚至不要也可
keybd_event VK_Ctrl, 0, KEYEVENTF_KEYUP, 0 '弹起Ctrl键
'-------------------------基本功能就完成了----------------------
'----------VB6.0中在XP SP3下编译通过-----------------I
2013年10月31日 15点10分
3