vbs如何隐藏正在运行的a.exe程序的窗口? 50

 我来答
七天分享
2023-03-05 · 书山有路勤为径,学海无涯苦作舟
七天分享
采纳数:103 获赞数:507

向TA提问 私信TA
展开全部

有几种方法可以用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:最大化窗口

  • bWaitOnReturn参数可以取以下值:

  • True:等待程序结束后再继续执行脚本

  • False:不等待程序结束就继续执行脚本

  • 所以,如果你想用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已经启动并成为当前活动窗口。

    希望对你有帮助。

Miracle达达
2023-03-05
知道答主
回答量:65
采纳率:0%
帮助的人:1.5万
展开全部
在VBScript中,可以使用Shell对象的Run方法来启动程序,然后使用AppActivate方法和SendKeys语句来模拟键盘输入,从而实现隐藏程序窗口的效果。以下是示例代码:
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,表示等待程序退出。程序退出后,代码执行结束。注意,在静默模式下运行程序时,可能会无法获取程序的控制台输出和错误信息。如果需要这些信息,可以在程序代码中进行记录并输出到文件中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
点点星光杂货铺
2023-03-05 · 佛系店铺一个,能够给你带来帮助是我的荣幸
点点星光杂货铺
采纳数:23 获赞数:31

向TA提问 私信TA
展开全部
在VBScript中,您可以使用WScript.Shell对象的Run方法来运行a.exe程序,并使用以下代码来隐藏窗口:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "a.exe", 0, False
在这里,第二个参数0表示隐藏窗口,第三个参数False表示不显示执行过程中的错误信息。这将启动a.exe程序并隐藏其窗口。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式