Форум: "Система";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизДва вопроса... :) Найти похожие ветки
← →
Leviathan (2001-11-26 17:17) [0]Мастера! Есть два важных вопроса, если кто подскажет, буду благодарен.
1) Как сделать мою программу автозапускаемой?
2) Предположим, что я точно знаю, что была запущена программа hl.exe. Как мне отследить из своей программы, когда она закончит работу?
← →
andey (2001-11-26 19:25) [1]На вопрос 1)
Пропиши в автозагрузку.
а можно так:
procedure RunOnStartup(sProgTitle, sCmdLine : string; bRunOnce : boolean );
var
sKey : string;
reg : TRegIniFile;
begin
if( bRunOnce )then //sKey := "Once"
begin
sKey := "";
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.DeleteValue(
"Software\Microsoft"
+ "\Windows\CurrentVersion\Run"
+ sKey + #0);
reg.CloseKey;
reg.Free
end
else
begin
sKey := "";
reg := TRegIniFile.Create( "" );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString(
"Software\Microsoft"
+ "\Windows\CurrentVersion\Run"
+ sKey + #0,
sProgTitle,
sCmdLine );
reg.CloseKey;
reg.Free;
end;
end;
← →
Olgerd (2001-11-26 20:20) [2]На вопрос 2)
Как узнать, что запущен такой-то exe-файл. Если он закончит работать, то функция возвратит false, можно по таймеру проверять.
uses TlHelp32;
function IsRunning(ExeName:String):Boolean;
var
PHandle: THandle;
ProcEntry:TProcessEntry32;
begin
result:=false;
PHandle:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
ProcEntry.dwSize:=sizeof(TProcessEntry32);
if Process32First(PHandle,ProcEntry) then
if ExtractFileName(ProcEntry.szExeFile) = ExeName then result := true;;
while Process32Next(PHandle,ProcEntry) do
if ExtractFileName(ProcEntry.szExeFile) = ExeName then result := true;
CloseHandle(PHandle);
end;
Чувствительна к регистру!
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c