6

アプリケーションを開いたり閉じたりしようとしていました。私はこのように試しました:

Dim App1 
Set App1 = CreateObject("WScript.Shell")
App1.Run("firefox")
App1.Quit

Firefox は開きますが、閉じません。

エラーメッセージ:

オブジェクトはこのプロパティまたはメソッドをサポートしていません

InDesign スクリプティングでアプリの終了方法を参考にしました(ドキュメントではありません)

アプリを終了する手順を教えてください。

4

5 に答える 5

7

その方法でプロセスを終了できるようにしたい場合は、Execメソッドの代わりにメソッドを使用する必要がありますRun

Set ff = CreateObject("WScript.Shell").Exec("firefox")
'you do stuff
ff.Terminate
于 2013-03-12T10:36:51.913 に答える
3

私はいくつかの方法を観察しました:

  1. 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
    
  2. SendKeys- ウィンドウ名がわかっている場合、すべてのアプリで機能します。

    Dim oShell : Set oShell = CreateObject("WScript.Shell")
    filename = "C:\Some_file.txt - Notepad"
    act = oShell.AppActivate(fileName)
    oShell.SendKeys "% C"
    
  3. WMI オブジェクト - 上記の 2 つの方法でうまくいったので、試しませんでした。ここで例を見つけることができます:

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    
    Set colProcessList = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = 'Chrome.exe'")
    
    Set oShell = CreateObject("WScript.Shell")
    For Each objProcess in colProcessList
        oShell.Run "taskkill /im chrome.exe", , True
    Next
    
于 2015-03-16T11:36:09.990 に答える
1

Firefox は COM オブジェクトではありません。Firefox COM オブジェクトはありません。Firefox は、COM の使用を望んでいません。またはネット。またはマイクロソフト。そのため、Firefox オブジェクトを作成できず、代わりに WScript.Shell オブジェクトを作成しました。

WScript.Shell には quit メソッドがありません。もしそうなら、それは Firefox を殺す助けにはなりません。

これは、VBS から WMI を使用して起動し、Firefox などのプロセスを終了する例です。

于 2013-03-12T07:26:20.537 に答える
0

この例の良い仕事:

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
于 2017-09-05T13:28:06.840 に答える