2017-12-05 62 views
0

VBScriptから開始したばかりのプログラムについて質問したときとまったく同じようにする必要があります。VBScriptプロセス名またはプログラムの実行可能ファイル名でプロセスIDを取得

私は以下のようにVBスクリプトからシステムのプロパティプログラムを始めています:

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "SystemPropertiesAdvanced.exe" 
WScript.Sleep 1000 

今私はどのように私はそれを行うことができ、SystemPropertiesAdvanced.exeプログラムのプロセスIDを取得したいですか?

可能な限りミックスコーディングなしでこれをVBScriptで純粋に行いたいと思います。

+0

(Googleの最初の結果)[https://www.experts-exchange.com/questions/21638733/How-do-you-get-the-PID-of-a-process-started-by-WshShell-Run .html – garbb

+0

私は最初に開いているプログラムで答えをチェックするだけで、動作していないかもしれません。計算機で動作するかもしれません。小さなプログラムです。システムプロパティのプロセスIDが必要です。 –

答えて

1
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") 

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process where name='Calculator.exe'") 
'msgbox colitems 
For Each objItem in colItems 
    msgbox objItem.name & " " & objItem.ProcessID & " " & objItem.CommandLine 
    If objItem.name = "Calculator.exe" then objItem.terminate 
Next 

これは、WMIを使用してCalculator.exeを照会し、終了します。

+0

あなたの答えは正解です。私は主な問題がある、私たちはチャットで議論することができますか? –

+0

私は 'SystemPropertiesAdvanced.exe'プロセスをidでアシストしたいのですが、コード自体でEnterキーを押したいと思います。これは動作しません。どうすればいいですか? –

+0

現在のプロセスを変更するには、 'WshEnv = WshShell.Environment(" PROCESS ") 'と 'WshEnv(" TestVar ")=" Windows Script Host "を使うべきでしょう。レジストリを永続化したい場合は、レジストリを編集します。 – ACatInLove

関連する問題