'-------------------------------------------------------------------------- '例えば電卓を起動 Dim プロセス As New Process() Dim 開始情報 As New ProcessStartInfo("calc.exe")
プロセス.StartInfo = 開始情報 プロセス.Start()
Dim コレクション As ProcessModuleCollection = プロセス.Modules
For Each モジュール As ProcessModule In コレクション MessageBox.Show(モジュール.ModuleName, モジュール.BaseAddress.ToString("X")) Next '--------------------------------------------------------------------------
分類:[.NET]
他プロセスで使用されているモジュールのベースアドレスが取得したいです。
以下では対象を起動してモジュールのベースアドレスを取得しています。
しかし、既に起動されているプロセスに対して、
モジュールのベースアドレスを取得するにはどうすれば良いでしょうか?
'--------------------------------------------------------------------------
'例えば電卓を起動
Dim プロセス As New Process()
Dim 開始情報 As New ProcessStartInfo("calc.exe")
プロセス.StartInfo = 開始情報
プロセス.Start()
Dim コレクション As ProcessModuleCollection = プロセス.Modules
For Each モジュール As ProcessModule In コレクション
MessageBox.Show(モジュール.ModuleName, モジュール.BaseAddress.ToString("X"))
Next
'--------------------------------------------------------------------------
現在は、「CreateToolhelp32Snapshot」でスナップを撮って、
「MODULEENTRY32構造体」からモジュールのベースアドレスを取得しています。
たしかに目的は達成されますが遠回りしている気がしてなりません。
どうぞ宜しくお願いいたします。