現在「特定のアプリケーションを指定してkillするスクリプト」を作っています。


以下に示すようにプログラム名を指定してkillするところまでは作成したのですが、
Javaで作られたアプリケーションが複数起動している場合、
java.exeのプロセスが複数いる状態になっており、
アプリケーションを特定するためにはアプリケーション名
(引数に指定したjarファイル名?)が必要になると思います。

以上の問題を解決するために
Windowsでアプリケーション名(実行ファイルのフルパスでも可)から
PIDを調べる方法を教えていただきたいです。

また、全く違う方法でも「特定のアプリケーションをkillするスクリプト」が
作成できれば、全く問題ありません。(ただしデフォルトのWindowsでの実行環境で)

OSは、Windows 2000 Professionalです。

>|aspvbs|
' hoge.exe kill
Set objService = getobject("winmgmts:")
For Each Process in objService.InstancesOf("Win32_process")
If Process.Name = "hoge.exe" Then
strProcessPath = "Win32_Process.Handle=" & Process.processid
Set objInstance = objService.Get(strProcessPath)
objInstance.Terminate(0)
End If
Next

||<

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/08/10 17:04:31
  • 終了:2007/08/13 00:50:12

回答(2件)

id:ManalTencho No.1

ManalTencho回答回数129ベストアンサー獲得回数92007/08/10 22:23:54

ポイント50pt

JavaExe というプログラムがあります。

http://devwizard.free.fr/html/en/JavaExe.html

これを使うと、例えば MyApp.jar という JAR の Main クラスを動かしたい場合に、JavaExe.exe を MyApp.exe にリネームすれば、あたかも MyApp.exe という Windows プログラムが動いているように振舞わせられるらしいです。

id:hiramatsu_kg No.2

hiramatsu_kg回答回数424ベストアンサー獲得回数32007/08/11 12:33:47

ポイント20pt

grep.exe

  • id:ardarim
    Win32_ProcessのCommandLineプロパティでコマンドラインが取得できるので、javaの引数に指定しているjarファイルを特定できると思います。

    ...と回答しようと思ったのですが、これ「This property is new for Windows XP.」でした。残念。
    http://msdn2.microsoft.com/en-us/library/aa394372.aspx

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません