![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват второй копии и запуск функции. [D6, Win95/98, WinME, NT4, Win2k, WinXP]
-Alex- © (2002-10-26 17:10:00)Привет.
Моя программа создает ярлык в каталоге C:\WINDOWS\SendTo (Пункт меню "Отправить"). Когда я щелкаю по файлу правой кнопкой мыши, выбираю в меню "Отправить" свой ярлык, моя программа помещает путь к файлу в компонент Edit1, а далее запускается определенная функция, которая проводит над файлом какие-то операции. Всё это работает, но возникла трудность, когда я начал отслеживать запуск второй копии своей программы, перепробывал разные коды этой слежки, но выйти из сложной ситуации не могу. Одним предложением: мне нужно -
- Если программа запущена через ярлык в пункте "Отправить", активировать уже запущенную копию программы (если программа уже запущена) и запустить определенную функцию.
Помогите это реализовать. Вот код, которым я отслежую запуск второй копии программы:
procedure TForm1.FormCreate(Sender: TObject);
var
h : hWnd;
buff : ARRAY[0.. 127] OF Char;
begin
h := GetWindow(Handle, gw_HWndFirst);
while h <> 0 do
begin
if (h <> Application.Handle) AND (GetWindow(h, gw_Owner) = 0) then
begin GetWindowText (h, buff, sizeof (buff ));
if StrPas (buff) = Application.Title then
begin
SetForegroundWindow(h);
ShowWindow(h,SW_SHOWNORMAL);
Halt;
end;
end;
h := GetWindow(h, gw_hWndNext);
end;
end;
Юрий Зотов (2002-10-26 21:19:00) [1]http://www.delphikingdom.com/helloworld/samples_win.htm
А по окну не советую - может оказаться слишком ненадежно.