Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
ВнизЗапуск программы Найти похожие ветки
← →
Eagle Owl (2003-05-25 22:19) [0]Как сделать, если программа уже была запущена, чтобы недопустить запуск других
экземпляров этой программы?
Заранее благодарю.
← →
Palladin (2003-05-25 22:23) [1]Ух ты, какая классика пошла, давно, давно, прям таки ностальгия...
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15
← →
AbrosimovA (2003-05-28 12:20) [2]
procedure TMainForm.FormCreate(Sender: TObject);
var
Wnd : hWnd; buff : ARRAY[0.. 127] OF Char;
begin
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 do begin
if (Wnd<>Application.Handle)and(GetWindow(Wnd,gw_Owner)=0) then
begin
GetWindowText (Wnd, buff, sizeof (buff ));
if StrPas (buff) = Application.Title then Halt;
end;
Wnd := GetWindow (Wnd, gw_hWndNext);
end;
end;
← →
BJValentine (2003-05-28 12:24) [3]Иногда бывают проги, которые висят только в процессах. Вот ф-ция:
function UniqueApp(NameApp: ShortString): boolean;
Var
Han: THandle;
ProcStruct: TProcessEntry32;
sID: String;
Spis: TStringList;
ind: integer;
begin
spis:=TStringList.Create;
spis.Clear;
han := CreateToolhelp32Snapshot( TH32CS_SNAPALL, 0 );
ProcStruct.dwSize := sizeof( PROCESSENTRY32 );
if Process32First( han, ProcStruct ) then
begin
repeat
sID := ExtractFileName( ProcStruct.szExeFile );
spis.Add(sID);
until not Process32Next( han, ProcStruct );
end;
spis.Sorted:=true;
Spis.Sort;
if spis.Find(NameApp,ind)
then Result:=true
else Result:=false;
CloseHandle( han );
Spis.Free;
end;
100-пудово работает. Указываеш в параметре имя EXE файла и дело сделано.
← →
DVM (2003-05-28 12:30) [4]
>
> BJValentine ©
> 100-пудово работает.
не стопудово. в NT4 не работает
← →
BJValentine (2003-05-28 12:32) [5]Да, но речь идёт о WinXP
← →
stone (2003-05-28 12:39) [6]Ну и я 5 коп. вставлю
uses syncobjs;
var
CheckEvent: TEvent;
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckEvent := TEvent.Create(nil, false, true, "MYPROGRAM_CHECKEXIST");
if CheckEvent.WaitFor(10) <> wrSignaled then
begin
ShowMessage("Уже запущена");
Self.Close;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c