首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用VBScript关闭任务管理器

如何用VBScript关闭任务管理器
EN

Stack Overflow用户
提问于 2017-09-02 20:26:17
回答 4查看 788关注 0票数 1

我正在尝试使用以下taskkill命令关闭任务管理器:

代码语言:javascript
复制
taskkill /f /im Taskmgr.exe

但它告诉我,我不能,因为有一个错误,我没有访问权限。

有没有办法通过更复杂的taskkill或类似的东西来获得这些权限?

如果这不可能,这是我正在使用的代码,也许有一种方法可以用taskkill代替Alt + F4或其他方法,欢迎所有想法

代码语言:javascript
复制
Set WshShell = WScript.CreateObject ("WScript.Shell")
Set objShell = CreateObject("Wscript.Shell")
do
Set colProcessList = GetObject("Winmgmts:").ExecQuery ("Select * from Win32_Process")

For Each objProcess in colProcessList
If objProcess.name = "Taskmgr.exe" then
vFound = True
End if
Next

If vFound = True then
objShell.Run "taskkill /f /im Taskmgr.exe", , True
vFound = False
End If
loop
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-09-03 04:31:17

这个vbscript可以做到这一点:

代码语言:javascript
复制
Option Explicit
If AppPrevInstance() Then 
    MsgBox "There is an existing proceeding !" & VbCrLF &_
    CommandLineLike(WScript.ScriptName),VbExclamation,"There is an existing proceeding !"    
    WScript.Quit   
Else
Do
    Call KillProcess("TaSkMgR.ExE")
Loop
End If
'*************************************************************************************
Sub KillProcess(MyProcess)
Dim colProcessList,objProcess
Set colProcessList = GetObject("Winmgmts:").ExecQuery ("Select * from Win32_Process")
For Each objProcess in colProcessList
    If LCase(objProcess.name) = LCase(MyProcess) then
        objProcess.Terminate()
    End if
Next
End Sub
'*********************************************************************************************
Function AppPrevInstance()   
    With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")   
        With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLineLike(WScript.ScriptFullName) & _
            " AND CommandLine LIKE '%WScript%' OR CommandLine LIKE '%cscript%'")   
            AppPrevInstance = (.Count > 1)   
        End With   
    End With   
End Function    
'*********************************************************************************************
Function CommandLineLike(ProcessPath)   
    ProcessPath = Replace(ProcessPath, "\", "\\")   
    CommandLineLike = "'%" & ProcessPath & "%'"   
End Function
'*********************************************************************************************
票数 3
EN

Stack Overflow用户

发布于 2017-09-02 20:32:45

我没有自己的excel来尝试它,但也许一个:

代码语言:javascript
复制
If objProcess.name = "Taskmgr.exe" then
    objProcess.Terminate()
End if

将会起作用

票数 3
EN

Stack Overflow用户

发布于 2018-08-23 06:52:34

代码语言:javascript
复制
Dim wshShell : Set wshShell = WScript.CreateObject ("WScript.Shell")
wshShell.Exec "taskkill /fi ""WINDOWTITLE eq Task Manager"""
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46013768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档