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 tapplication大全

Delphi2010的操作界面切换到Delphi7的操作模式

Delphi 获得当前进程所使用的内存

Delphi调节音量及静音

Delphi 获取内核地址的简单方法

Delphi 在减少占用资源的情况下,等待msecs毫秒

tidhttpresponseinfo 中文乱码问题解决

Delphi isdirectory 判断是否是目录

Delphi listview1 加载文件列表用法

Delphi 调节音量代码

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



打赏

取消

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

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

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

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

评论

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