Windows 如何获取属于某个进程的已打开句柄数?

Windows 如何获取属于某个进程的已打开句柄数?,windows,delphi,winapi,handle,window-handles,Windows,Delphi,Winapi,Handle,Window Handles,您可以使用该程序查看运行应用程序的句柄数。用Delphi代码有没有办法得到这个数字?我有兴趣跟踪申请本身的号码;不能像Process Explorer那样查找其他应用程序使用的句柄数 我的目的是让应用程序跟踪/检测可能的资源泄漏。使用该功能。此API函数是由Winapi.Windows单元导入的最新版本的Delphi函数(因此您可以省略显示的函数): 效果很好。我使用它来检测由于发生网络连接错误时未调用Socket.Close()而导致的资源泄漏。 function GetProcessHand

您可以使用该程序查看运行应用程序的句柄数。用Delphi代码有没有办法得到这个数字?我有兴趣跟踪申请本身的号码;不能像Process Explorer那样查找其他应用程序使用的句柄数

我的目的是让应用程序跟踪/检测可能的资源泄漏。

使用该功能。此API函数是由Winapi.Windows单元导入的最新版本的Delphi函数(因此您可以省略显示的函数):


效果很好。我使用它来检测由于发生网络连接错误时未调用
Socket.Close()
而导致的资源泄漏。
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;