vbs如何获取顶层窗口句柄?

如题所述

在VBScript中,要获取顶层窗口句柄可以使用"GetForegroundWindow"函数和"FindWindow"函数。以下是获取顶层窗口句柄的示例代码:
Set objShell = CreateObject("WScript.Shell")
'获取顶层窗口句柄
hwnd = objShell.AppActivate("窗口标题")
If hwnd = 0 Then
hwnd = FindWindow(vbNullString, "窗口标题")
End If
'使用顶层窗口句柄来执行其他操作
If hwnd <> 0 Then
'...
End If
其中,"AppActivate"函数可以根据窗口标题激活窗口并获取窗口句柄,如果该函数未能成功获取窗口句柄,则可以使用"FindWindow"函数来查找窗口标题对应的窗口句柄。然后,您可以使用获取到的窗口句柄来执行其他操作。
温馨提示:内容为网友见解,仅供参考
第1个回答  2023-03-05
在 VBScript 中,你可以使用 WScript.Shell 对象和 AppActivate 方法来获取顶层窗口的句柄。
以下是获取顶层窗口句柄的 VBScript 代码示例:
Set WshShell = WScript.CreateObject("WScript.Shell")
' 激活指定窗口
WshShell.AppActivate "窗口标题"
' 获取顶层窗口句柄
hwnd = WshShell.AppActivate()
' 输出顶层窗口句柄
WScript.Echo "顶层窗口句柄:" & hwnd
在上面的代码中,我们首先创建了一个 WScript.Shell 对象,并使用 AppActivate 方法激活了指定窗口。然后,我们调用 AppActivate 方法,不传递任何参数,以获取顶层窗口的句柄。最后,我们使用 WScript.Echo 方法输出了获取到的句柄。
需要注意的是,使用 AppActivate 方法获取窗口句柄需要确保窗口已经处于活动状态,否则可能会导致获取到错误的句柄。此外,AppActivate 方法只能获取到顶层窗口的句柄,如果需要获取其他窗口的句柄,需要使用其他方法。
第2个回答  2023-03-05
在VBS中获取顶层窗口句柄,可以使用Windows API函数 GetForegroundWindow。
以下是一个示例VBS代码,获取当前顶层窗口的句柄:
Option Explicit
Declare Function GetForegroundWindow Lib "user32" () As Long
Dim hWnd As Long
hWnd = GetForegroundWindow()
MsgBox "当前顶层窗口句柄为:" & hWnd
其中,'GetForegroundWindow()' 函数可以获取当前活动窗口(即顶层窗口)的句柄,返回值类型为 'Long'。

vbs如何获取顶层窗口句柄?
在VBScript中,要获取顶层窗口句柄可以使用"GetForegroundWindow"函数和"FindWindow"函数。以下是获取顶层窗口句柄的示例代码:Set objShell = CreateObject("WScript.Shell")'获取顶层窗口句柄 hwnd = objShell.AppActivate("窗口标题")If hwnd = 0 Then hwnd = FindWindow(vbNullString, "窗口标题")End...

VBS如何通过命令行获得顶层窗口的路径?
最后把两个结果赋值给VBS的变量。注意:不是激活某个窗口和获得句柄。请求:请先...VBS没有提供获得窗口Z序的属性和方法。如何调用命令行代码,获得资源管理器的顶层窗口的路径。最后把两个结果赋值给VBS的变量。注意:不是激活某个窗口和获得句柄。请求:请先在您的电脑上运行一下,如果能够执行再上传答案。因为我是...

怎么获取指定句柄窗口的里面任意点的坐标
如果是窗口游戏的话。可以用Plugin a=Window.Foreground() 返回当前窗口句柄为a VBSCall GetCursorPos(x,y) 得到当前鼠标位置x,y Plugin Window.Move(a, x, y)把窗口a移动到x,y位置这样就不用担心窗口移动造成的点不到血条了。秘诀在于。窗口左上角坐标是x,y那么你血条坐标就可以用x+,y+ 形...

VB获取游戏窗口句柄
'下面取游戏窗口句柄 hwnd Mir2Hwnd = FindWindow("TFrmMain", "legend of mir2")hwnd = FindWindowEx(Mir2Hwnd, 0, "TDXDraw", vbNullString)'以下为虚拟按键 PostMessage hwnd, WM_SETFOCUS, 0, 0 '获得窗口焦点 PostMessage hwnd, WM_KEYDOWN, 0, 0 '发送回车键 'PostMessage hwnd, WM_...

怎么获取指定句柄窗口的里面任意点的坐标
如果是窗口游戏的话。可以用Plugin a=Window.Foreground() 返回当前窗口句柄为a VBSCall GetCursorPos(x,y) 得到当前鼠标位置x,y Plugin Window.Move(a, x, y)把窗口a移动到x,y位置这样就不用担心窗口移动造成的点不到血条了。秘诀在于。窗口左上角坐标是x,y那么你血条坐标就可以用x+,y+ ...

如何可以让一个批处理,运行时在所有程序的最前端显示?
cmd没有这方面的命令。可以第三方程序控制,例如我这边用pascal写的:var myhand:THandle;搜索对应cmd的句柄,myhand := FindWindow(nil,'你的批处理窗体名',);指定句柄窗体最外显示:SetForegroundWindow(myhand);以上就行了。希望你采纳

按键精灵后台运行脚本
\/\/下面这句是最小化窗口 Plugin Window.Min(A)Delay 1000 \/\/下面这句是最大化窗口 Plugin Window.Max(B)Delay 2000 MoveTo 378,403 LeftClick 1 \/\/下面这句是得到鼠标指向的窗口句柄 Plugin hwnd2 = Window.MousePoint()Delay 3000 \/\/下面这句是最小化窗口 Plugin Window.Min(B)Delay 50 \/\/...

vbs获取当前活动窗口标题
返回值:如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。函数不能返回在其他应用程序中的编辑控制的文本。备注:如果目标窗口属于当前进程,GetWindowText...

按键精灵VBS如何激活指定窗口
\/\/获得窗口句柄 Plugin a=Window.Foreground()\/\/激活窗口 Plugin Window.Active(a)\/\/就这么简单

按键精灵如何锁定?
问题三:按键精灵锁定窗口 看官方教程,有个指令是读取窗口句柄的,以前用过,是可以用的 问题四:按键精灵如何锁定窗口 你参考一下,找到窗口后,要激活->最小化->还原,就会得到想要的窗口了 以下是获取wow窗口 Delay 1000 Rem TOSTART Import window.dll VBS hwnd=obj.FindWindow(,魔兽世界)VBS...

相似回答
大家正在搜