7

プログラムProcess Explorerを使用して、実行中のアプリケーションが持っているハンドルの数を確認できます。Delphi コードでこの番号を取得する方法はありますか? アプリケーション自体の番号を追跡することに関心があります。Process Explorer が行っているように、他のアプリケーションで使用されているハンドルの数を見つけないようにします。

私の意図は、アプリケーションがリソースリークの可能性を追跡/検出することです。

4

1 に答える 1

13

機能を使用してくださいGetProcessHandleCount。この API 関数は、Winapi.Windowsユニットによってインポートされた Delphi の最近のバージョンにあります (したがって、提示されたものを省略できます)。

function GetProcessHandleCount(hProcess: THandle; var pdwHandleCount: DWORD): BOOL; stdcall;
  external 'kernel32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  HandleCount: DWORD;
begin
  if GetProcessHandleCount(GetCurrentProcess, HandleCount) then
    ShowMessage('Handle count: ' + IntToStr(HandleCount));
end;
于 2012-01-26T13:47:03.553 に答える