- 締切済み
他のコンピュータのプロセスを取得
VB2005Expressにて開発しています。 他のコンピュータで実行中のプロセスを取得したいと思っています。 Dim ps As System.Diagnostics.Process() = _ System.Diagnostics.Process.GetProcesses("プロセス名","192.168.XXX.XXX") で指定したコンピュータからプロセスは取得することは出来ました。 ただ、特定のコンピュータだけ「リモート コンピュータに接続できませんでした。」というエラーが出てしまいます。 プログラムの実行環境のID、パスワードと特定のコンピュータの IDとパスワードが異なっているのが原因だと思っています。 GetProcessesにIDとパスワードを設定してプロセスを取得することは 可能なのでしょうか。 ご存知の方がいらっしゃいましたらご教授下さい。 よろしくお願いします。
- madamadahiyoko
- お礼率44% (38/86)
- Visual Basic
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
そのプログラムを実行するユーザが、別PCに対しての管理者権限をもっている必要があります。
関連するQ&A
- 特定ユーザーのプロセス情報を取得するには
こんにちは。 VB.NET 2003で、現在起動されている全プロセスから、 特定のユーザーが起動した ・プロセスID ・プロセス名称 の情報を取得する方法はありますでしょうか? System.Diagnostics.Process.GetProcessesで、 プロセス情報が取得できるので、 その中から、特定のユーザーの情報だけを洗い出そうとしたのですが、 ユーザー名に当たるプロパティが見つけられませんでした。 Process クラスには、ユーザー名は持っていないのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- サーバ内のプロセスを取得するには?
こんにちは! VB.netでサーバで起動しているexeを、ローカルから停止したいのですが、肝心のサーバ内のプロセスIDを取得できません・・・ System.Diagnostics.Processはローカルのプロセスしか取得できないのでしょうか? どなたかネットワーク全体のプロセスを取得できるコードをご存知でしたら、教えて下さいm(_ _)m よろしくお願い致します。
- ベストアンサー
- Visual Basic
- プロセスの情報取得
vb.netで開発しています。 あるexe(仮にwatch_p.exeとします)のプロセスの情報(CPU時間)を取得し、一定時間以上(30分以上)だった場合強制終了するプログラムを作成しようとしています。 以下のようにCPU時間の取得する方法までは見えていますが、取得した 時間を比較する方法が見えていません。 忙しいことと思いますが、回答をお願いします。 Dim ps As System.Diagnostics.Process() = _ System.Diagnostics.Process.GetProcesses() '配列から1つずつ取り出す Dim p As System.Diagnostics.Process For Each p In ps Try If p.ProcessName="watch_p" then '合計プロセッサ時間 Console.WriteLine(p.TotalProcessorTime) End if Catch End Try Next p
- ベストアンサー
- Visual Basic
- ウィンドウを最前面にできません
VB.NETでSetForegroundWindowでウインドウを最前面に出来ないため、AllowSetForegroundWindowを使用するようにしましたが、解決できません。 コードは大体次のようになっています。 Dim hProcess As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess() AllowSetForegroundWindow(hProcess.Id) Dim hWnd As IntPtr = FindWindow("XXX", "YYYYY") SetForegroundWindow(hWnd) 環境は次のとおりです。 OS: Windows 7 Pro. 64bit SP1 VB.NET: 2010 Express 解決方法をご教示頂きたく、よろしくお願いします。
- 締切済み
- Visual Basic
- 別プロセスをの実行パスを取得したいのですが
自作のアプリケーション実行中に、全く無関係の別のプロセス(つまりprocess.start()等でそのアプリケーションから実行したプロセスではないということです)をDiagnostics.Processクラスのオブジェクトとして取得することはできると思うのですが、取得したプロセスの実行パスを何とかして調べる方法はないものでしょうか?
- ベストアンサー
- Visual Basic
- プロセスIDの取得方法について
下に同様の質問をしたのですが、削除方法分からない為、再度質問させていただきまし。 VB5.0を利用しています。 VBで書いたexeを実行した際に、そのプロセスID(自分の)は、GetCurrentProcessIdを利用すれば取得できると分かりました。 が、プログラム内でExcelを下記の様にオブジェクトを作成した場合、そのプロセスIDをどうやって取得すればいいのでしょうか? ご存知の方居ましたら、教えて下さい。 Set ExcelObj = CreateObject("Excel.Application") ここで起動?されたExcelのプロセスIDを取得したいのですが。
- ベストアンサー
- Visual Basic
- 終了するプロセス名の取得方法
使用言語はC#です。 System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcesses(); for (int i = 0; i<= ps.Length-1 ; i++) { if (ps[i].MainWindowTitle != string.Empty) { Console.WriteLine("ウィンドウタイトル:" + ps[i].MainWindowTitle); Console.WriteLine("起動時間:" + ps[i].StartTime); } try { ps[i].EnableRaisingEvents = true; ps[i].SynchronizingObject = this; ps[i].Exited += new EventHandler(p_Exited); if(ps[i].MainWindowTitle != string.Empty) { Console.WriteLine("ウィンドウタイトル: " + ps[i].MainWindowTitle); Console.WriteLine("終了時間:" + ps[i].ExitTime); } 現在このようにしてウィンドウのタスクバー上に表示されるプロセスのタイトルを取得し、プロセスが終了したときに同じようにウィンドウのタイトルを表示しようとしました。 起動時のプロセスは取得できるのですが、終了時のプロセスが取得できません。 プロセスを全取得して、比較して終了したプロセスを判断すると終了時刻が取れないように思えるので、プロセスが終了するたびにイベントハンドらにとばすようにしたいです。ご存知の方がいましたよろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- リモートPCで動作しているプロセスにWindowsメッセージを投げるこ
リモートPCで動作しているプロセスにWindowsメッセージを投げることは可能でしょうか? 下記のようなコードで試してみたのですが、ASP.NETでリモートPCのプロセスを取得できています。 これらの中から目的のプロセスをプロセス名で特定し、MainWindowHandleプロパティでウィンドウハンドルを取得します。 これを利用してSendMessageで目的のウィンドウにメッセージを投げようとしていますが、pFoundWindowには0が入っています。 ちなみに目的のプロセスはAdmin権限で実行されていますが、他の権限で実行されているプロセスも同じようにウィンドウハンドルを取得できていません。 [C#] Process[] processes = Process.GetProcesses("servername”); //プロセスリスト取得 foreach (Process p in processes) { if (p.ProcessName == "target_process"){ //目的のプロセスであれば IntPtr pFoundWindow = p.MainWindowHandle; //メインウィンドウのハンドルを取得 SendMessage(pFoundWindow, msg, wParam, lParam); } MSDNには、MainWindowHandleはローカルPCで実行されているプロセスしか取得できないとありましたが、権限の設定等で取得できないのでしょうか? 通常、リモート接続では実行ユーザがNETWIORK SERVICEになるようですが、これをAdmin権限で実行できれば取得できそうな気がします。 これと同様のことをFindWindow関数を使ってもできるのですが、同じくリモートPCのプロセスではウィンドウハンドルを取得できません。 他に良い方法はありませんでしょうか? サーバーはWindows Server 2003 + IIS6.0です。
- ベストアンサー
- Microsoft ASP
- [C#]リモートアクセスのProcess取得で「アクセス拒否」
現在、PCのプロセスを取得するプログラムを作っています。 しかし、リモートコンピューターからGetProcessesByNameでプロセスを取得しようとすると、アクセス拒否の例外が出てしまいます。 具体的には、以下のような例外をキャッチできるのですが、アクセス拒否されないために必要な条件となんでしょうか? またエラー回避策、ヒントなど、教えていただければ幸いです。 よろしくお願いします。 -------------------------------------- try{ Process [] targetProcess = Process.GetProcessesByName(プロセス名 , リモートコンピューター名); } catch(System.InvalidOperationException e){ Debug.WriteLine(e.Source + ":1" + e.Message); System.Exception se = e.InnerException; Debug.WriteLine(se.Source + ":2:" + se.Message); } -------------------------------------- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -------------------------------------- System:1:リモート コンピュータからプロセス情報を取得できませんでした。 System:2:アクセスが拒否されました。 -------------------------------------- 参考:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1596734
- ベストアンサー
- C・C++・C#
- 起動したIEのウインドウタイトルを取得する方法
こんばんは。WindowsXP+VB.NET環境です。 IE = CreateObject("InternetExplorer.Application") IE.Navigate("http://www.yahoo.co.jp") でインターネットエクスプローラを起動した場合に IEのウインドウの上の部分に表示されている 「Yahoo! JAPAN - Microsoft Internet Explorer」という文字と プロセスIDとプロセス名を取得したいのですが どのようなコードを書けば良いでしょうか? WEBサイトで調べていたら起動中の全プロセスのものを全て表示する 方法はあったのですが、起動したIE限定で取得したいです。 IE.IdとかIE.ProcessName、IE.MainWindowTitleのようにしてみたのですが エラーになってしまいました。 あと、別の方法で Dim hProcess As System.Diagnostics.Process = System.Diagnostics.Process.Start("iexplore") hProcess.WaitForInputIdle() Dim pName As String = hProcess.MainWindowTitle としたら出来るようになったのですが、 起動した後に上の方法でやった時のようにIE.Navigate("http://****")で 移動したりしたいのですが、この方法で起動した場合の 方法が分からなくなってしまいました。 IE = CreateObject("InternetExplorer.Application")で起動したIEのように 操作できるようにする方法を教えて頂きたいです。よろしくお願い致します。
- ベストアンサー
- Visual Basic