【问题标题】:How to "End Task" not "Kill" or "Terminate"?如何“结束任务”而不是“杀死”或“终止”?
【发布时间】:2010-05-07 18:39:04
【问题描述】:

我有一张 3G 卡来为远程计算机提供互联网...我必须运行一个程序(随卡提供)来建立连接...由于连接突然丢失,我编写了一个杀死程序的脚本并重新打开它以便重新建立连接,该程序的某些版本在终止/终止时不会终止连接,只是在正确关闭时。

所以我正在寻找“正确关闭”窗口的脚本或程序,以便在连接丢失时关闭并重新打开它。

这是杀死程序的代码

Option Explicit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strProcessKill 
strComputer = "."
strProcessKill = "'Telcel3G.exe'" 

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _ 
& strComputer & "\root\cimv2") 

Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next 
WSCript.Echo "Just killed process " & strProcessKill _
& " on " & strComputer
WScript.Quit 

【问题讨论】:

  • 您需要发布一些代码,以便我们了解您的意思(打开连接的代码和终止/终止的代码)。
  • Taskkill /im imagename.exe 要求关闭应用程序。 Taskkill /f /im imagename.exe 强制关闭应用程序。您正在使用 16 行来完成一批中的一行可以做的事情。

标签: c# windows vbscript task


【解决方案1】:

如果您必须使用 VBScript,一种简单的方法是激活应用程序,然后使用 SendKeys 将其还原(如果已最小化)并将其发送“alt-f4”。这很 hacky,但它可能比找到主窗口的句柄更容易,而且它可能对你来说足够好。

Option Explicit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strProcessKill 
strComputer = "."
strProcessKill = "'Telcel3G.exe'" 

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _ 
& strComputer & "\root\cimv2") 

dim WshShell
set WshShell = CreateObject("WScript.Shell")

Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
WshShell.AppActivate objProcess.ProcessId
WScript.Sleep 1000 
WshShell.Sendkeys "% r"
WScript.Sleep 1000
WshShell.Sendkeys "%{F4}"
Next 

【讨论】:

    【解决方案2】:

    据我了解,基本思想是彻底关闭进程,而不是突然终止它。一种方法是使用 WM_CLOSE 将 Windows 消息发布到主窗口。

    (您可以通过发送对应于 Alt+F4 的击键来模拟此操作,但最好只发送 WM_CLOSE。)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 2017-11-19
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多