掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
起動中のIEのプロセスIDやプロセス名を全て取得したい。 (ID:122414)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> この次の行にプロセスIDとプロセス名を書き込むにはどうしたら良いでしょうか? いきなり、FS.Write がどうとか書かれても……。 当事者にしかわからないような質問の仕方は避けましょうよ。 せめて、元記事へのリンクぐらいは貼っておいてくださいな。(^_^; そうしないと、第三者には意味不明な物になってしまいますので。 http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200506/05060046.txt で。先に提示したサンプルは、COM の ShellWindows オブジェクトを使って、 COM の InternetExplorer オブジェクトを列挙しているわけですが、 その点は、理解されていますでしょうか。 [ShellWindows オブジェクト] http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/objects/shellwindows/shellwindows.asp [InternetExplorer オブジェクト] http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp > 上の方法でやるとどうしても一つのIDと名前しか取得できないので、 そもそも、各画面ごとに異なるプロセスである保証は無いですし。 1つのプロセスで、複数の画面が起動されている事も多いですよね。 > プロセスIDとキャプション名でした。 タイトルに関しては、LocationNameプロパティで取得できるかと。 プロセスIDに関しては……HWNDプロパティでウィンドウハンドルを得てから、 GetWindowThreadProcessId APIで取り出せば良いかな? Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As IntPtr, ByRef PID As IntPtr) As Integer Sub Main() Dim Shell As Object = CreateObject("Shell.Application") Dim Windows As Object = CallByName(Shell, "Windows", CallType.Method) For I As Integer = 0 To CInt(CallByName(Windows, "Count", CallType.Get)) - 1 Dim Exp As Object = CallByName(Windows, "Item", CallType.Get, I) Dim PId As IntPtr GetWindowThreadProcessId(New IntPtr(CInt(CallByName(Exp, "HWND", CallType.Get))), PId) Console.WriteLine(String.Format("{0:x} - [{1}]", PId, CallByName(Exp, "LocationName", CallType.Get))) Marshal.ReleaseComObject(Exp) Next Marshal.ReleaseComObject(Windows) Marshal.ReleaseComObject(Shell) End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.