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

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

Если прога работает, то повторный запуск передает первой копии ин [D7, XP]


Disa ©   (2009-08-03 08:28:00) 

Не смог выразить тему в двух словах)
Суть вот в чем, если один экземпляр программы уже запущен, то повторная попытка открытия этой же программы должна, естейственно, не открываться (это я могу сделать) и (а вот это уже не могу :-) передавать какую-нибудь информации первому экземпляру.
Проще говоря, как у любого музыкально проигрывателя, когда открываешь мп3 файл, если проигрыватель уже запущен, то он начинает проигрывать новый мп3 файл, но не запускается еще раз.
Вот я очень хочу сделать то же самое.


brother   (2009-08-04 04:11:00) [1]

> А ты откуда знаешь ?)

в начинающих мой телепатор подсказал ;)


Плохиш   (2009-08-03 15:47:00) [2]


> Disa ©   (03.08.09 09:28) [5]
>
>

на, радуйся

var
   FHandle:  THandle;
   FBuffer:  Pointer;
   FAppHnd:  HWND;

begin
 FHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0,
                              4, 'BacCoolConfig');
 FBuffer := MapViewOfFile(FHandle, FILE_MAP_WRITE, 0, 0, 4);
 If HWND(FBuffer^) = 0 then
 begin
   HWND(FBuffer^) := Application.Handle;
   Application.Initialize;
   Application.CreateForm(TfrmMain, frmMain);
   Application.Run;
 end
 else
 begin
   FAppHnd := HWND(FBuffer^);
   Windows.SetForegroundWindow(FAppHnd);
   Windows.PostMessage(FAppHnd, msgFileRefresh, 0, 0);
 end;
 UnmapViewOfFile(FBuffer);
 CloseHandle(FHandle);
end.


Amoeba   (2009-08-03 14:45:00) [3]

Статья по теме вопроса:
Обобщающий пример работы с WinAPI №3 – Ассоциированные файлы и предотвращение запуска второй копии приложения
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904


Anatoly Podgoretsky   (2009-08-03 11:16:00) [4]

> Disa  (03.08.2009 09:28:05)  [5]

А ты все буквы выговариваешь?


Сергей М.   (2009-08-03 09:36:00) [5]


> Не такое уж он оно и гуёвое... что вы сразу обзываетесь)
> Обычное такое приложение Win32 с формой и кнопочками


Ну как же оно не гуёвое ? Самое что ни на есть гуёвое)

GUI ("гуй") = Graphic User Interface = Графический Интерфейс Пользователя


Disa   (2009-08-03 09:28:00) [6]


> А ты откуда знаешь ?)


Да, кстати, хороший вопрос? :)

Не такое уж он оно и гуёвое... что вы сразу обзываетесь)
Обычное такое приложение Win32 с формой и кнопочками.


> послать окну первого приложения уникальное сообщение и в
> параметре передать все, что надо


Вот об этом поподробнее, пожалуйста.


Сергей М.   (2009-08-03 09:04:00) [7]


> brother ©   (03.08.09 08:48) [3]


А ты откуда знаешь ?)


brother   (2009-08-03 08:48:00) [8]

> Приложение гуёвое или консольное ?

гуевое)


brother   (2009-08-03 08:47:00) [9]

послать окну первого приложения уникальное сообщение и в параметре передать все, что надо?
или проще:
начать восспроизведение, а старое приложение убить?


Сергей М.   (2009-08-03 08:46:00) [10]

Приложение гуёвое или консольное ?


Наверх

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