通过FindWindow查找指定类名或窗口名的程序句柄,,如果返回值不为0,则程序已经运行。
其中:类名是指主窗体的窗体类名,窗口名是应用程序的标题,如果同时指定类名和窗口名,则必须是类名和窗口名都相同才能获取句柄。
示例:
uses
Winapi.Windows;
//通过窗口标题判断程序是否已经运行
function AppIsRunByWindowName(AWindowName: string): boolean;
begin
Result := FindWindow(nil,PChar(AWindowName)) <> 0;
end;
//通过主窗体类名判断程序是否已经运行
function AppIsRunByClassName(AClassName: string): boolean;
begin
Result := FindWindow(PChar(AClassName),nil) <> 0;
end;