• ベストアンサー

別プロセスをの実行パスを取得したいのですが

自作のアプリケーション実行中に、全く無関係の別のプロセス(つまりprocess.start()等でそのアプリケーションから実行したプロセスではないということです)をDiagnostics.Processクラスのオブジェクトとして取得することはできると思うのですが、取得したプロセスの実行パスを何とかして調べる方法はないものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Process クラスの MainModule.FileName で取得できるみたいです。 ただし、下のような方法では「アクセスが拒否されました」という例外が発生してしまうものが多数ありました。 Imports System.Diagnostics Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim hProcesses() As Process = Process.GetProcesses() Dim hProcess As Process For Each hProcess In hProcesses Try Debug.WriteLine(hProcess.MainModule.FileName) Catch ex As Exception Debug.WriteLine(ex.Message) End Try Next End Sub End Class

関連するQ&A

  • VBAで別プロセスのExcelのフルパスの取得

    いつもお世話になります。 Excel VBAで別プロセスで起動しているExcelブックのフルパスの取得方法を教えて頂けないでしょうか。 前提としては、ファイル自体はローカル環境に保存されているが、どこに保存されているかは分からない、というものになります。 別プロセスの場合はあらかじめフルパスが分かっていれば取得できるといったものはあったのですが、それをそもそも取得したいというのは見つけることができませんでした。 そもそもやりたいのは、プロセスが同じ、別であるに関わらず、起動している全てのExcelブックに対して、マクロを実行したいのですが、フルパスが分かれば処理を行うことができると考え、このような質問をするに至りました。 使用しているExcelは2003になります。 宜しくお願いします。

  • アプリケーション開始パス

    VB.NETを勉強中なのですが、 アプリケーション開始パスを調べるときに例えば、 System.Diagnostics.Process.Start(Application.StartupPath & "\abc.txt") と記述すると実行ファイルと同階層にあるabc.txtが開きます。 また、 System.Diagnostics.Process.Start("abc.txt") と記述しても同様に動作しました。 今まで1番目のようにApplication.StartupPathを入れて記述してきたのですが、2番目のような記述でも実行ファイルと同階層のファイルを表し、結局はどちらも同じということなのでしょうか?

  • 別プロセスの起動

    別プロセスの起動について質問があります。 Java、Servlet、JSPを使って検索画面、検索処理を作っています。 レコード件数が何万件もあるので、検索処理を別プロセス(別クラス)で実行したいと考えています。 クラス構成は、 1.検索条件受け取りクラス 2.検索処理クラス 検索条件受け取りクラスで、検索条件をオブジェクトにし、そのオブジェクトを検索処理クラスの引数に渡し、別プロセスとして実行するような感じで考えています。 ※スレッドでの実装は、メモリを消費するため考えておりません。 実装方法やサンプルをよろしくお願いします。

  • 【VBAでapp.path が取得できない】

    VBAでapp.path を取得しようとすると、「オブジェクトが必要です」エラーが表示されます。 アプリケーション実行パスを取得する方法はありますか? Excel2000を使用しています。 宜しくお願いいたします。

  • C#で別プロセスを起動

    C#で開発をしています。 デバックモードで別プロセスを起動したいのですが可能でしょうか? System.Diagnostics.Process.Startを使うと別のexeを起動することは できるようですが、デバックモードで呼び出すにはどうしたらいいのでしょうか? 教えてください。 よろしくお願いします。

  • [C#]実行中プロセスのパスを調べる方法について

    いつもお世話になっております。 現在実行中のプロセスの中から、特定のアプリのexeファイルのpathを表示させる方法が分からず苦戦しております。 言語はC#になります。 以下のコードでテキストボックスに、C#でコンパイルしたプログラムのpathは分かったのですが、私が表示させたいのは、コンパイルしたプログラムのpathではなく、現在実行中のプロセスの中のあるアプリのexeファイルのpathになります。 string appPath= System.Windows.Forms.Application.ExecutablePath; textBox1.Text = appPath; 良いお知恵がございましたらお力添えいただきたく、宜しくお願いいたします。

  • 他のコンピュータのプロセスを取得

    VB2005Expressにて開発しています。 他のコンピュータで実行中のプロセスを取得したいと思っています。 Dim ps As System.Diagnostics.Process() = _ System.Diagnostics.Process.GetProcesses("プロセス名","192.168.XXX.XXX") で指定したコンピュータからプロセスは取得することは出来ました。 ただ、特定のコンピュータだけ「リモート コンピュータに接続できませんでした。」というエラーが出てしまいます。 プログラムの実行環境のID、パスワードと特定のコンピュータの IDとパスワードが異なっているのが原因だと思っています。 GetProcessesにIDとパスワードを設定してプロセスを取得することは 可能なのでしょうか。 ご存知の方がいらっしゃいましたらご教授下さい。 よろしくお願いします。

  • C#でのProcess.Startと変数path

    C:\Program Files\a\にa.exeがあって、a.exeにパスが通っていて、 C:\> a.exe でaが実行できる状態にあるのですが、 System.Diagnostics.Process.Start("a"); でなぜか An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll Additional information: 指定されたファイルが見つかりません。 と言われ実行できません。 a.exeをパスを指定しないで実行するにはどうしたらいいのでしょうか。

  • プロセスが実行中かどうか調べる方法

    CreateProcessで作ったプロセスが実行中かどうか調べる方法はありませんか。 標準出力に値を吐き出し続けるコンソールアプリケーションから、値を取得して処理をしたいのですが、CreateProcessでつくってパイプで処理しようとしています。ぐぐったところWaitForSingleObjectで待つようなサンプルは見つかったのですが、呼び出したプロセスが終了しないのでこれは使えないので 実行中はずっとループし続けるような感じにしたいのですが。 よろしくお願いします

  • 特定ユーザーのプロセス情報を取得するには

    こんにちは。 VB.NET 2003で、現在起動されている全プロセスから、 特定のユーザーが起動した ・プロセスID ・プロセス名称 の情報を取得する方法はありますでしょうか? System.Diagnostics.Process.GetProcessesで、 プロセス情報が取得できるので、 その中から、特定のユーザーの情報だけを洗い出そうとしたのですが、 ユーザー名に当たるプロパティが見つけられませんでした。 Process クラスには、ユーザー名は持っていないのでしょうか? よろしくお願いいたします。

専門家に質問してみよう