16.03.2009, 20:00
|
|
Активный
|
|
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
|
|
Код:
uses
TlHelp32, ShellAPI;
function GetProcessByEXE(exename: string): THandle;
var
hSnapshoot: THandle;
pe32: TProcessEntry32;
begin
Result:= 0;
hSnapshoot:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshoot = 0) then Exit;
pe32.dwSize:= SizeOf(TProcessEntry32);
if (Process32First(hSnapshoot, pe32)) then
repeat
if (pe32.szExeFile = exename) then
begin
Result:= pe32.th32ProcessID;
exit;
end;
until not Process32Next(hSnapshoot, pe32);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if GetProcessByEXE('notepad.exe') = 0 then
ShellExecute(0, 'open', 'notepad', nil, nil, SW_SHOWNORMAL)
else
ShowMessage('Уже запущено');
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
|