delphi判断某个程序是否已经启动


本文整理自网络,侵删。

 delphi判断某个程序是否已经启动 

// 判断指定路径的Exe执行程序是否已经启动
// aExeName : 带全路径
function IsAppExeRun(const aExeName: string):Boolean;
var
_vHandle : THandle;
_vProEntry : TProcessEntry32;
_vIsFound : Boolean;
_vProHandle : THandle;
_vHmodule : HMODULE;
_vFileNameBuf : array[0..MAX_PATH] of Char;
_vNeeded : DWORD;
_vTempStr : string;
begin
Result := False;
_vHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
_vProEntry.dwSize := SizeOf(TProcessEntry32);
_vIsFound := Process32First(_vHandle, _vProEntry);
while _vIsFound do
begin
_vTempStr := _vProEntry.szExeFile;
if (UpperCase(_vTempStr) = UpperCase(ExtractFileName(aExeName))) or
(UpperCase(_vTempStr) = UpperCase(aExeName)) then
begin
_vProHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
False, _vProEntry.th32ProcessID);
GetLastError;
if _vProHandle <> 0 then
begin
if EnumProcessModules(_vProHandle, @_vHmodule, SizeOf(_vHmodule), _vNeeded) then
begin
ZeroMemory(@_vFileNameBuf, MAX_PATH + 1);
GetModuleFileNameEx(_vProHandle, _vHmodule, _vFileNameBuf, MAX_PATH + 1);
_vTempStr := _vFileNameBuf;
if UpperCase(_vTempStr) = UpperCase(aExeName) then
begin
Result := True;
Break;
end;
end;
end;
end;
_vIsFound := Process32Next(_vHandle, _vProEntry);
end;
finally
CloseHandle(_vHandle);
end;
end;


相关阅读 >>

Delphi form工程创建

Delphi firemonkey的tedit七大变化

Delphi点击网页弹出的alert对话框的确定按钮

Delphi tstringlist 用法详解

Delphi httpserver 使用方法

Delphi memo1 自定义位置插入

Delphi2010 编译变量$region用法

Delphi xe 制作的萤光时钟,可改作屏保

Delphi中使用android振动

Delphi剪切板-监视剪贴板

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...