人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

windows で、プロセスIDが判明しているときに、WSHでプロセスの名前(プログラム名)を取り出したいのです。下記のように、WMI (Windows Management Instrumentation)を操作すれば簡単にできそうです。
http://www012.upp.so-net.ne.jp/scotchegg/VBScript/Tips/WaitFinish.htm
調べればできないことはないのですが、調べる手間を減らしたいので、プロセスIDからプロセス名を簡単に割り出すスクリプトがあったら教えてください。いろいろできて複雑なスクリプトでなく、解読するのが簡単なものが希望です。

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:Windows WMI WSH スクリプト プログラム
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mirakurutoshiki
●5ポイント

http://www.vector.co.jp/vpack/browse/person/an010222.html

http://download.goo.ne.jp/software/category/win/util/shell/

http://homepage2.nifty.com/nonnon/SoftSample/SampleProcessList.html

これら使えますか?

◎質問者からの返答

調べる手間を減らすために質問しているのです。ずばり回答を期待します。


2 ● cx20
●95ポイント ベストアンサー

サンプルを作成してみました。

' File : GetProcessNameByProcessID.vbs
' Usage : CScript //Nologo GetProcessNameByProcessID.vbs
' Description : WMI を使用してプロセスIDからプロセス名を取得するサンプル
Option Explicit

Call Main()

Sub Main()
 Dim nProcessID
 nProcessID = 1652 ' 任意のプロセスIDを入れてください
 
 Dim strProcessName
 strProcessName = GetProcessNameByProcessID( nProcessID )
 WScript.Echo strProcessName
End Sub

Function GetProcessNameByProcessID( nProcessID )
 Dim strResult
 
 Dim strComputer
 strComputer = "."  ' ドット (.) は ローカル コンピュータを表します。

 Dim objWMIService
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
 
 Dim strSQL
 strSQL = "SELECT * FROM Win32_Process WHERE ProcessID = " & nProcessID ' ProcessID を条件に検索します
 
 Dim colItems
 Set colItems = objWMIService.ExecQuery( strSQL ) 
 
 Dim objItem
 For Each objItem in colItems 
 strResult = objItem.Name
 Exit For
 Next 

 GetProcessNameByProcessID = strResult
End Function
notepad.exe

■ Hey, Scripting Guy! バッチ ファイルに関連付けられているプロセス ID を特定する方法はありますか

http://gallery.technet.microsoft.com/scriptcenter/5109d5df-6116-40a4-9f4e-31e51ecf0edd/

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ