プログラムProcess Explorerを使用して、実行中のアプリケーションが持っているハンドルの数を確認できます。Delphi コードでこの番号を取得する方法はありますか? アプリケーション自体の番号を追跡することに関心があります。Process Explorer が行っているように、他のアプリケーションで使用されているハンドルの数を見つけないようにします。
私の意図は、アプリケーションがリソースリークの可能性を追跡/検出することです。
プログラムProcess Explorerを使用して、実行中のアプリケーションが持っているハンドルの数を確認できます。Delphi コードでこの番号を取得する方法はありますか? アプリケーション自体の番号を追跡することに関心があります。Process Explorer が行っているように、他のアプリケーションで使用されているハンドルの数を見つけないようにします。
私の意図は、アプリケーションがリソースリークの可能性を追跡/検出することです。
機能を使用してください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;