Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как, при попытке повторного запуска приложения, найти предыдущее? [D6, Win95/98]


Astrov Alseos ©   (2003-03-18 16:45:00) 

Здравствуйте!
...мне бы хотелось сделать "грамотно". Т.е. если пользователь "случайно" пытается запустить вторую копию приложения, то найти и активизировать уже имеющиюся копию.
У меня, почти что, получилось это,но...
После того, как отрабатывает этот текст программы, главная форма приложения почему-то не минимизируется, ди и всё приложение ведёт себя "странно", с точки зрения контроля над ним... Пожалуйста, подскажите, где именно я не совсем прав?

Вот, что я пишу в DPR:


program NrX;

uses
Forms,
Windows,
NrU0001 in "NrU0001.pas" {MainForm},
NetDBf01U in "NetDBf01U.pas" {NetDbf01},
LocDBf01U in "LocDBf01U.pas" {LocDbf01},
NrU0002 in "NrU0002.pas" {IIn},
NrU0003 in "NrU0003.pas" {KIn},
NrU0005 in "NrU0005.pas" {ISn},
NrU0006 in "NrU0006.pas" {KSn},
NrU0008 in "NrU0008.pas" {KInS},
NrU0009 in "NrU0009.pas" {KSnS},
NrU0012 in "NrU0012.pas" {VED05};

var
HM: THandle;
function Check: boolean;
begin
HM := OpenMutex(MUTEX_ALL_ACCESS, false, "MyOwnMutex");
Result := (HM <> 0);
if HM = 0 then HM := CreateMutex(nil, false, "MyOwnMutex");
end;

{$R *.res}

begin
if Check then
begin
ShowWindow(FindWindow(nil,"Главная форма"), SW_ShowNormal);
SetForegroundWindow(FindWindow(nil,"Главная форма"));
Exit
end;

Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
..............................................................


Помогите!


Игорь Шевченко   (2003-03-18 17:33:00) [1]

FAQ


Наверх

Титульная страница Поиск, карта сайта Написать письмо