【发布时间】:2012-02-19 14:13:33
【问题描述】:
您可以使用程序Process Explorer 查看正在运行的应用程序有多少句柄。 Delphi代码有没有办法得到这个数字?我有兴趣跟踪应用程序本身的号码;不要像 Process Explorer 那样查找其他应用程序使用的句柄数。
我的目的是让应用程序跟踪/检测可能的资源泄漏。
【问题讨论】:
标签: windows delphi winapi handle window-handles
您可以使用程序Process Explorer 查看正在运行的应用程序有多少句柄。 Delphi代码有没有办法得到这个数字?我有兴趣跟踪应用程序本身的号码;不要像 Process Explorer 那样查找其他应用程序使用的句柄数。
我的目的是让应用程序跟踪/检测可能的资源泄漏。
【问题讨论】:
标签: windows delphi winapi handle window-handles
使用GetProcessHandleCount 函数。此 API 函数在最新版本的 Delphi 中由 Winapi.Windows 单元导入(因此您可以省略提供的那个):
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;
【讨论】:
Socket.Close()引起的资源泄漏。