Tab restoring: simplify check for keyword in ProcessExists(), don't throw a regular expression at it

This commit is contained in:
Ansgar Becker
2020-11-10 07:19:53 +01:00
parent 66c50ce792
commit 1f5f36f4e9
2 changed files with 4 additions and 30 deletions

View File

@ -367,7 +367,7 @@ type
function RunningAsUwp: Boolean;
function GetThemeColor(Color: TColor): TColor;
function ThemeIsDark(ThemeName: String): Boolean;
function ProcessExists(pid: Cardinal; ExeNameMatchesExpression: String=''): Boolean;
function ProcessExists(pid: Cardinal; ExeNamePattern: String): Boolean;
procedure ToggleCheckBoxWithoutClick(chk: TCheckBox; State: Boolean);
var
@ -2940,12 +2940,11 @@ begin
end;
function ProcessExists(pid: Cardinal; ExeNameMatchesExpression: String=''): Boolean;
function ProcessExists(pid: Cardinal; ExeNamePattern: String): Boolean;
var
Proc: TProcessEntry32;
SnapShot: THandle;
ContinueLoop: Boolean;
rx: TRegExpr;
begin
// Check if a given process id exists
SnapShot := CreateToolhelp32Snapshot(TH32CS_SnapProcess, 0);
@ -2953,26 +2952,7 @@ begin
Result := False;
ContinueLoop := Process32First(SnapShot, Proc);
while ContinueLoop do begin
if Proc.th32ProcessID = pid then begin
// Found the process id, probably check if it matches a given pattern
if not ExeNameMatchesExpression.IsEmpty then begin
rx := TRegExpr.Create;
rx.ModifierI := True;
rx.Expression := ExeNameMatchesExpression;
try
Result := rx.Exec(Proc.szExeFile);
except
on E:Exception do begin
MainForm.LogSQL(E.Message, lcError);
Result := False;
end;
end;
rx.Free;
end else begin
// Pattern empty
Result := True;
end;
end;
Result := (Proc.th32ProcessID = pid) and ContainsText(Proc.szExeFile, ExeNamePattern);
if Result then
Break;
ContinueLoop := Process32Next(SnapShot, Proc);