![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как предотвратить н-й запуск приложения? [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]Винда не передаст уже запущенной копии.
Должна передавать новая копия твоей программы и закрываться.