-
Здраствуйте ! Возникла проблема с SendMessage, не доходит сообщение. Стоит задача предотвратить повторний запуск преложения и если такой возник, то вывести запущеное приложение на передний план. Делаю так:
CreateMutex(nil, false, 'MyApp'); if GetLastError = ERROR_ALREADY_EXISTS then begin SendMessage(HWND_BROADCAST, RegisterWindowMessage('MyApp'), 0, 0); Halt(0); end;
Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;
--------------------------
private procedure DefaultHandler(var Message:TMessage);
var Form1: TForm1; MyMsg : DWord;
procedure TForm1.DefaultHandler(var Message:TMessage); begin if Message.Msg=MyMsg then begin listbox1.Items.Add('my message'); end; Inherited DefaultHandler(Message); end;
procedure TForm1.FormCreate(Sender: TObject); begin MyMsg := RegisterWindowMessage('MyApp'); end;
-
> не доходит сообщение
Прежде чем оно куда-то дойдет, надо быть уверенным что оно точно уйдет, причем именно то которое ожидается.
-
> CreateMutex
Это функция !
-
> kolj (16.11.08 14:56)
> и если такой возник, то вывести запущеное приложение на > передний план.
А нафих Mutex? Memory mapped file or Semaphore, на худой конец.
> SendMessage(HWND_BROADCAST,
Must die.
-- Regards, LVT.
-
-
Удалено модератором
-
Удалено модератором
-
Удалено модератором
-
Удалено модератором
|