全LoadModule?


Pickn  2004-06-24 03:20:14  No: 9623

DelphiのIDEが持ってる
表示→デバッグ→モジュール
と同じ事を配布先の環境で行いたいのですが
ご教授いただけますか?

簡単に言うと自前の部分とそうでない部分も含めた
何がLoadされてるか等もふくめて?
全てのModuleがどのPathからLoadされてるのか
を知りたいと言う事です。よろしくお願いします


jok  2004-06-24 03:45:48  No: 9624

> 全てのModuleがどのPathからLoadされてるのかを知りたいと言う事です。

わたしの Win2k では以下でうまくいくようです。

uses
  TLHelp32;

procedure TForm1.Button1Click(Sender: TObject);
var
  hModuleSnap:THandle;
  Me32:TModuleEntry32;
begin
  hModuleSnap := CreateToolHelp32Snapshot(TH32CS_SNAPMODULE,0);
  if hModuleSnap = INVALID_HANDLE_VALUE then exit;

  Me32.dwSize := SizeOf(TModuleEntry32);
  if Module32First(hModuleSnap,Me32) then
    repeat
      Memo1.Lines.Add(string(Me32.szExePath));
    until not Module32Next(hModuleSnap,Me32);

  CloseHandle(hModuleSnap);
end;


さわ  2004-06-24 04:11:15  No: 9625

横レス質問失礼します。。
PSAPIってDLLとUnitありますよね?
あれって↑でjokさんの方法?Kernelから来てるんでしょうか?
Kernel32.dllのバージョンによってExportされてないとか?
そうでないなら?PSAPIでも似た様な事はできたと思います。
もし駄目でしたら
systemのUnitの中にもEnumModuleみたいな関数があります
使った事無いのでいいのか解りませんが?試してみてはいかがでしょう?


jok  2004-06-24 04:31:37  No: 9626

> PSAPIでも似た様な事はできたと思います。

そうです。でも Win9X 系では使えません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加