Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2012, 16:05
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию Отобразить скрытое окно при запуске копии программы

Здрасвтуйте. Подскажите пожалуйста как сделать фичу по сабжу?
написал прогу которая скрыта,то есть ни в трее ни внизу на панели задач,ни формы не видно.
и нужно сделать так,чтоб при втором нажатии на ехе файл не вторая копия запускалась, а старая видимой стала.
проблема в том что поиском гугла нахожу тока варианты как найти по заголовку окна,но так как окно скрыто то всякие функции возвращают нулевой результат.
може можно както поиск хендла скрытого окна сделать?
Часть заголовка окна извесна.часть меняется,цифры там.
Существование копии проверяю таким кодом в файле проекта dpr,
но незнаю как ухватить хендл,чтоб послать ему команду
ShowWindow(<хендл>,SW_SHOWNORMAL);
Код:
begin
CreateMutex(nil, True, PChar('MiniServ'));//проверяем запуск копии проги
if GetLastError = ERROR_ALREADY_EXISTS then //если запущена
  if
  Application.MessageBox('Программа уже запущена!'#13'Продолжить запуск еще одного экземпляра программы?', 'Внимание!',1)=2
  then begin
       /* здесь по идее надо узнать хендл уже запущенной копии,и послать команду
      ShowWindow(<хендл>,SW_SHOWNORMAL); */
       Halt;//если нет - прибиваем данный процесс запуска
       end;
  Application.Initialize;
  Application.Title:='MiniServ';
  if ParamCount>0 then if (ParamStr(1)='/s')or(ParamStr(1)='-s') then
  Application.ShowMainForm:= False;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.HintHidePause:=10240;
  Application.Run;
end.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025