Пользователь
Сообщения: 149
Благодарности: 38
|
Профиль
|
Отправить PM
| Цитировать
Цитата innot20:
пока не выключишь процесс »
|
В смысле, чтоб процесс пользователю руками выключать надо было?
Попробуй так
читать дальше »
[code]
Код: 
const
TH32CS_SNAPPROCESS = $2;
INVALID_HANDLE_VALUE = -1;
type
TPROCESSENTRY32 = record
dwSize, cntUsage, th32ProcessID: DWORD;
th32DefaultHeapID: Longint;
th32ModuleID, cntThreads, th32ParentProcessID: DWORD;
pcPriClassBase: Longint;
dwFlags: DWORD;
szExeFile: array [0..259] of char;
end;
var Page:TOutputMsgWizardPage;
function CreateToolhelp32Snapshot(dwFlags, th32ProcessID: DWORD): THandle; external 'CreateToolhelp32Snapshot@kernel32.dll stdcall';
function Process32First(hSnapshot: THandle; var lppe: TPROCESSENTRY32): Boolean; external 'Process32First@kernel32.dll stdcall';
function Process32Next(hSnapshot: THandle; var lppe: TPROCESSENTRY32): Boolean; external 'Process32Next@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): Boolean; external 'CloseHandle@kernel32.dll stdcall';
function IsProcessRunning(FileName: String): Boolean; //FileName - имя exe-файла процесса
var
hProcessSnap: THandle;
pe32: TPROCESSENTRY32;
szExeFile: String;
begin
hProcessSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if hProcessSnap = INVALID_HANDLE_VALUE then Exit;
pe32.dwSize := sizeof(pe32);
if not Process32First(hProcessSnap, pe32) then Exit;
while not Result and Process32Next(hProcessSnap, pe32) do
begin
szExeFile := '';
while not (pe32.szExeFile[Length(szExeFile)] = #0) do szExeFile := szExeFile + pe32.szExeFile[Length(szExeFile)];
Result := LowerCase(FileName) = LowerCase(szExeFile);
end;
CloseHandle(hProcessSnap);
end;
procedure InitializeWizard;
begin
Page:=CreateOutputMsgPage(wpSelectComponents, "Внимание", "Игра WorldOfTanks запущена", "Игра WorldOfTanks запущена. Закройте, чтобы продолжить установку");
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if (CurPageID= Page.id) then
begin
if IsProcessRunning('WorldOfTanks.exe') then
result:=false
else
result:=true;
end
else
result:=true;
end;
|
Отправлено: 17:58, 27-01-2014
| #2000
|