Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

Предотвращение повторного запуска программы   Найти похожие ветки 

 
NetKnight ©   (2003-03-24 09:45) [0]

Была у меня сабжевая документа, но куда-то я её потерял, кто-нить даст линку ?


 
RoadStar ©   (2003-03-24 09:53) [1]

Попробуй:

Unic:=CreateFileMapping($FFFFFFFF,nil,PAGE_READONLY,0,32,"WWW");
if unic = 0 then
begin
MessageDLG("Ошибка распределения памяти!",mtError,[mbOK],0);
halt;
end
else if GetLastError = ERROR_ALREADY_EXISTS then
begin
Window := FindWindow("имя класса твоей формы", nil);
SwitchToThisWindow(Window, 0);
halt;
end;


 
KDS ©   (2003-03-24 10:59) [2]

В модуле проекта впиши то что меж звёзд
В переменную WinCap помести заголовок (Caption) главной формы

var AppH:THandle;
WinCap:Ansistring;
begin
Application.Initialize;
Application.Title := "Моя прога";
*************************
WinCap:="Донецк"+" ["+GetPCName+"]";
AppH:=FindWindow("TEngineMF",PChar(WinCap));
if AppH>0 then begin
MessageBeep(MB_ICONASTERISK);
MessageBox(Application.Handle, "Программа уже запущена. Переходим к ней","Внимание",$41030);
ShowWindow(AppH,SW_MAXIMIZE);
SetForegroundWindow(AppH);
exit;
end;
*****************
Application.CreateForm(TEngineDM, EngineDM);



 
Intell ©   (2003-03-24 11:09) [3]

В модуле проекта

program Project1;

uses
windows,
Forms,
Unit1 in "Unit1.pas" {Form1};

{$R *.res}

const
AtStr="MyProgram";

function CheckThis : boolean ;

var
Atom: THandle;
begin
Atom:= GlobalFindAtom(AtStr);
Result:= Atom <> 0;
if not result
then GlobalAddAtom(AtStr);
end;

begin
if not CheckThis
then begin
Application.Initialize;
Application.Title := "Start";
Application.CreateForm(TForm1, Form1);
Application.Run;
GlobalDeleteAtom(GlobalFindAtom(AtStr)); // !!!
end
else begin
MessageBox(0,"Autorun уже зарегестрирован в системе! Если он не загружен, а сообщение появляется, тогда произошёл сбой в памяти Windows.",0);
end;
end.

Я думаю разберёшься.

sergein@nojabrsk.ru


 
NetKnight ©   (2003-03-24 14:23) [4]

Спасибо, попробую.. :)



Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
7-6829
BANick
2003-02-08 19:54
2003.04.03
Как напечатать быстро


7-6797
Элина
2003-02-07 14:27
2003.04.03
Как узнать серийные номера девайсов


4-6872
Alexey German
2003-02-06 16:55
2003.04.03
Помогите разобраться с SetForegroundWindow


1-6516
dimonf
2003-03-24 21:50
2003.04.03
Как продолжить работу программы при конэкте к серверу?


14-6670
Ihor Osov'yak
2003-03-17 11:52
2003.04.03
Прошу не принять за провокацию...