vbs如何隐藏正在运行的a.exe程序的窗口? 50
有几种方法可以用vbs隐藏正在运行的a.exe程序的窗口。其中一种方法是使用CreateObject函数和Wscript.Shell对象来运行a.exe,并将第二个参数设置为0,表示隐藏窗口。例如:
CreateObject("Wscript.Shell").Run "a.exe",0,True
另一种方法是使用SendKeys函数和Alt+Space组合键来最小化a.exe的窗口。例如:
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "a.exe" WScript.Sleep 100 WshShell.SendKeys "% n"
CreateObject函数是用来创建一个对象的,比如Wscript.Shell对象。Wscript.Shell对象可以用来执行命令行程序或脚本。Run方法是Wscript.Shell对象的一个方法,它可以用来运行一个程序或脚本,并指定窗口样式和是否等待程序结束。Run方法的语法是:
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
其中,object是一个Wscript.Shell对象,strCommand是要运行的程序或脚本的名称,intWindowStyle是一个可选参数,表示窗口样式,bWaitOnReturn也是一个可选参数,表示是否等待程序结束后再继续执行脚本。
intWindowStyle参数可以取以下值:
0:隐藏窗口
1:正常窗口
2:最小化窗口
3:最大化窗口
…
True:等待程序结束后再继续执行脚本
False:不等待程序结束就继续执行脚本
bWaitOnReturn参数可以取以下值:
所以,如果你想用vbs隐藏正在运行的a.exe程序的窗口,并且等待它结束后再继续执行脚本,你可以使用这样的代码:
CreateObject("Wscript.Shell").Run "a.exe",0,True
如果你不想等待它结束,你可以使用这样的代码:
CreateObject("Wscript.Shell").Run "a.exe",0,False
SendKeys函数是用来模拟键盘输入的。你可以用它来发送一些组合键或快捷键来控制窗口。例如:
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.SendKeys "% n"
这段代码就是发送Alt+Space+N组合键,表示最小化当前活动窗口。
所以,如果你想用vbs最小化正在运行的a.exe程序的窗口,并且不等待它结束后再继续执行脚本,你可以使用这样的代码:
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "a.exe" WScript.Sleep 100 WshShell.SendKeys "% n"
注意,在运行a.exe之后要加上一段延时(比如100毫秒),以确保a.exe已经启动并成为当前活动窗口。
希望对你有帮助。
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
' 启动程序并隐藏窗口
WshShell.Run "a.exe", 0
' 等待程序窗口出现
WScript.Sleep 1000
' 将程序窗口置于前台
WshShell.AppActivate "a.exe"
' 发送按键指令,隐藏窗口
WshShell.SendKeys "% n"
在上面的示例代码中,第一行创建了一个WshShell对象,用于操作Shell。然后,使用Run方法启动程序a.exe,并将第二个参数设置为0,表示隐藏程序窗口。等待程序窗口出现后,使用AppActivate方法将程序窗口置于前台,然后使用SendKeys语句模拟按下Alt + N键,从而实现隐藏程序窗口的效果。
如果您需要以管理员身份运行脚本,则可以将代码修改为以下内容:
Set objShell = CreateObject("Shell.Application")
Set objWshShell = WScript.CreateObject("WScript.Shell")
' 设置程序路径
strProgramPath = "C:\Program Files\a.exe"
' 以管理员权限启动程序
objWshShell.Run "runas /user:Administrator """ & strProgramPath & """", 1, False
' 等待程序窗口出现
WScript.Sleep 1000
' 将程序窗口置于前台
objShell.AppActivate "a.exe"
' 发送按键指令,隐藏窗口
objWshShell.SendKeys "% n"
在这个示例代码中,我们使用了Shell对象来以管理员权限启动程序,然后等待程序窗口出现,将窗口置于前台,最后使用SendKeys语句模拟按下Alt + N键,从而实现隐藏程序窗口的效果。请注意,运行这个脚本需要管理员权限。
如果您希望以静默模式运行程序,即启动程序时不显示任何窗口,则可以使用以下代码
Set objShell = CreateObject("WScript.Shell")
' 设置程序路径
strProgramPath = "C:\Program Files\a.exe"
' 使用VBScript的Run方法以隐藏窗口的方式启动程序
objShell.Run """" & strProgramPath & """", 0, True
' 等待程序退出
Do While objShell.AppActivate("a.exe")
WScript.Sleep 1000
Loop
在这个示例代码中,我们使用了WScript.Shell对象的Run方法来启动程序,并将第二个参数设置为0,表示隐藏窗口。第三个参数设置为True,表示等待程序退出。程序退出后,代码执行结束。注意,在静默模式下运行程序时,可能会无法获取程序的控制台输出和错误信息。如果需要这些信息,可以在程序代码中进行记录并输出到文件中。
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "a.exe", 0, False
在这里,第二个参数0表示隐藏窗口,第三个参数False表示不显示执行过程中的错误信息。这将启动a.exe程序并隐藏其窗口。