![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вторая копия проги [D6, WinXP]
AlexeyM © (2004-08-15 02:32:00)Есть много способов не запустить вторую копию проги (примеры брал из DelphiWorld) но работают тока пример с Mutex
а хочется еще чтоб при запуске второй проги вторая не пускалась а первая выходила на экран если закрыта другими окнами
TUser (2004-08-15 10:51:00) [1]
> Этот не метод не гарантирует от повторного запуска, а вот
> Mutex гарантирует
А почему? Если приложение запущено и главная форма его никуда не делась ...
Юрий Зотов (2004-08-15 07:52:00) [2]> AlexeyM
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904
Anatoly Podgoretsky (2004-08-15 07:39:00) [3]Этот не метод не гарантирует от повторного запуска, а вот Mutex гарантирует
TUser (2004-08-15 03:00:00) [4]if h = 0 then
else SetForegroundwindow(h);
Это вообще-то компилируется?
Initialize лучше вперед поставь
AlexeyM (2004-08-15 02:56:00) [5]не тестирую нажатием кнопки в IE
TUser (2004-08-15 02:55:00) [6]Под отладчиком? См. [1]
AlexeyM (2004-08-15 02:46:00) [7]сделал так
program IEpasw;
uses
Forms,
Windows,
main in 'main.pas' {IEpassword},
only_one in 'only_one.pas';
{$R *.res}
const
UniqueString = 'MyProgramMutex';
{Ìîæåò áûòü ëþáîå ñëîâî. Æåëàòåëüíî ëàòèíñêèìè áóêâàìè.}
var h:hwnd;
begin
if not init_mutex(UniqueString) then begin
h:=FindWindow('TIEpassword', 'IEpassword');
if h = 0 then
else SetForegroundwindow(h);
exit; {Âûõîäèì äî èíèöèàëèçàöèè, åñëè ìüþòåêñ óæå åñòü}
end;
Application.Initialize;
Application.CreateForm(TIEpassword, IEpassword);
Application.Run;
end.
но первая прога при запуске второй на экран не выходит
где у меня ошибка?
Fay (2004-08-15 02:44:00) [8]BOOL SetForegroundWindow(
HWND hWnd // handle to window
);
Обитает в User32.dll
P.S.
и в модуле Windows 8)
AlexeyM (2004-08-15 02:42:00) [9]дельфи говорит что не знаком с SetForegroundFindow
TUser (2004-08-15 02:36:00) [10]var h:hwnd;
begin
Initialize;
h:=FindWindow;
if h = 0 then
...
else SetForegroundFindow(h);
end;
Тут с IDE будет трабл - там есть такая же форма с таким же заголовком/классом. Лучше Caption главной формы днамически прописывать.