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 获取指定进程中的~内存数据

Delphixe7关于android 检测屏幕是否处于关闭状态

Delphi中用tlistview显示数据库数据

Delphi 的链式代码

Delphi窗口显示和关闭的时候出现动画效果

Delphi 10 seattle中的画布上绘制字符

Delphi路径分割符处理相关函数

Delphi 6句代码实现Delphi动态调用api函数

Delphi制作透明窗体

Delphi 官方stylebook大全使用

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



打赏

取消

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

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

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

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

评论

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