使用VBScript关闭应用程序
我试图打开和关闭一个应用程序。 我试着这样做:使用VBScript关闭应用程序,vbscript,Vbscript,我试图打开和关闭一个应用程序。 我试着这样做: Dim App1 Set App1 = CreateObject("WScript.Shell") App1.Run("firefox") App1.Quit Firefox将打开,但不会关闭 错误消息: 对象不支持此属性或方法 我提到 请告诉我关闭应用程序的过程。Firefox不是COM对象。没有Firefox COM对象。Firefox不希望您使用COM。或净。或者微软。这就是为什么您不能创建Firefox对象,所以您创建了WScript.
Dim App1
Set App1 = CreateObject("WScript.Shell")
App1.Run("firefox")
App1.Quit
Firefox将打开,但不会关闭
错误消息:
对象不支持此属性或方法
我提到
请告诉我关闭应用程序的过程。Firefox不是COM对象。没有Firefox COM对象。Firefox不希望您使用COM。或净。或者微软。这就是为什么您不能创建Firefox对象,所以您创建了WScript.Shell对象 Shell没有quit方法。如果它真的这么做了,那也无助于杀死Firefox
这是一种从VBS使用WMI启动,然后杀死Firefox之类的进程的方法。如果您希望能够以这种方式终止进程,则需要使用
Exec
方法,而不是Run
方法
Set ff = CreateObject("WScript.Shell").Exec("firefox")
'you do stuff
ff.Terminate
我观察了几个方面:
taskkill
-仅当我在运行时尝试终止同一进程时才起作用
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.Run """C:\My_Scripts\ddl.exe"" -p1 -c"
'some code
oShell.Run "taskkill /f /im ddl.exe", , True
SendKeys
-适用于所有应用程序,如果窗口名称已知
Dim oShell : Set oShell = CreateObject("WScript.Shell")
filename = "C:\Some_file.txt - Notepad"
act = oShell.AppActivate(fileName)
oShell.SendKeys "% C"
以下是另一种VBScript实现:
strComputer=“”
设置objWMIService=GetObject(“winmgmts:_
&“{impersonationLevel=impersonate}!\\”&strComputer&“\root\cimv2”)
设置colProcessList=objWMIService.ExecQuery_
(“从Win32_进程中选择*,其中名称='Notepad.exe')
对于colProcessList中的每个objProcess
objProcess.Terminate()
下一个
这个例子做得很好:
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.Run """C:\My_Scripts\ddl.exe"" -p1 -c"
'some code
oShell.Run "taskkill /f /im ddl.exe", , True
这对我有用。我只是想添加这个,因为答案从未被排除在外,但我的第二次搜索“vbscript启动应用程序并关闭”。但它不能关闭现有应用程序吗?你说的“关闭现有应用程序”是什么意思?它终止通过
Exec
启动的进程。它在HTA中不起作用。我该怎么办??请帮忙。@Arunpandiarajen如果这在你的HTA中不起作用,你就做错了。请发布一个新问题,并附上您的代码和更详细的问题描述。第三种方法:在For Each循环中使用objProcess.Terminate()
我们能否关闭以前打开的应用程序(也由VBScript打开)?(在前台运行的应用程序)退出vbscript应用程序将只是一个Wscript.Quit
——因此该部分实际上不适用。Firefox不是vbscript应用程序。欢迎使用堆栈溢出!虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,这会降低代码和解释的可读性!。
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.Run """C:\My_Scripts\ddl.exe"" -p1 -c"
'some code
oShell.Run "taskkill /f /im ddl.exe", , True