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

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

Как предотвратить н-й запуск приложения? [D6, 2000, XP, 2003]


Магедон ©   (2007-03-02 18:24:00) 

Я написал маленький почтовый клиентик. Поставил его поумолчанию.
Когда я я кликаю где, на mailto:lkjlkj@kkjhk.jklsjd.idslkjf.cn то открывается новая копия программы.
Что нужно сделать чтобы винда передавала уже запущеной копии, а не запускала новую?

А если кто покажет какой иходник, то вооще было бы замечательно.


Alexdeil   (2007-03-03 17:10:00) [1]

Примерно так (главный модуль программы):

program proba;

uses
 Windows,
 Forms,
 main in 'main.pas' {fMainb};

var
 Handle1 : LongInt;
 Handle2 : LongInt;

{$R *.RES}

begin
 Application.Initialize;
 Handle1 := FindWindow('TfMainb',nil);
 if handle1 = 0 then
 begin
 Application.CreateForm(TfMainb, fMainb);
  Application.Run;
 end
 else
 begin
   Handle2 := GetWindow(Handle1,GW_OWNER);
   //Чтоб заметили :)
   ShowWindow(Handle2,SW_HIDE);
   ShowWindow(Handle2,SW_RESTORE);
   SetForegroundWindow(Handle1); // Активизируем
 end;
end.


YurikGL   (2007-03-03 00:36:00) [2]

http://itby.ru/content/view/2064/40/
http://read.excode.ru/art4026.html
и вообще
http://www.yandex.ru/yandsearch?rpt=rad&text=%EA%EE%EF%E8%FF+%EF%F0%E8%EB%EE%E6%E5%ED%E8%FF+delphi


Рамиль   (2007-03-02 18:31:00) [3]

Винда не передаст уже запущенной копии.
Должна передавать новая копия твоей программы и закрываться.


Наверх

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