急求100分:如何使用VB写段代码达到全局热键。

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:34:51
在公司电脑上进行网络游戏挂机,需要收起该游戏最小化,同时可以在电脑上做其他操作。求个VB小程序,可以在后台运行,在固定时间按固定热键,并且一直循环。比如:每隔30秒按一次F9 再隔10秒按一次F3 这些热键只对该游戏起效果,不影响其他任何程序。
光通 传奇3 2008 官服(此游戏目前版本已能在窗口化和全屏之间切换)

使用以下代码可以在有焦点时使用,但不能最小化游戏,也不能在电脑上做其他事。

set WshShell = WScript.CreateObject("WScript.Shell")

Do While 1
WshShell.SendKeys "{F6}"
WScript.Sleep 33000
Loop

哈哈!ms我能解决哦!不过还要看你的游戏是否支持啦(你那个ms是vbs的,我这个可不是vbs,这个是vb,你要先搞清楚哈,vbs是无法实现的啦)
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 Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private wnd As Long

Private Sub Form_Load()
Dim wnd As Long, A As String
wnd = FindWindow(vbNullString, "无标题 - Notepad2") '获取窗口句柄在这里修改想要窗口标题,我是用记事本测试的
If wnd = 0 Then
MsgBox "该窗口未运行", 16, "Error"
Unload Me
Exit Sub
End If
Do
Sleep 30000 '隔30秒
PostMessage wnd, &H100, vbKeyF9, 0 '发送按键f9
Sleep 10000 '隔10秒
PostMessage wn