Конференция "WinAPI" » Проблема с SendMessage [D7, WinXP]
 
  • kolj (16.11.08 14:56) [0]
    Здраствуйте ! Возникла проблема с 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;
  • Сергей М. © (16.11.08 16:34) [1]

    > не доходит сообщение


    Прежде чем оно куда-то дойдет, надо быть уверенным что оно точно уйдет, причем именно то которое ожидается.
  • Сергей М. © (16.11.08 16:35) [2]

    > CreateMutex


    Это функция !
  • Leonid Troyanovsky © (16.11.08 16:38) [3]

    > kolj   (16.11.08 14:56)  

    > и если такой возник, то вывести запущеное приложение на
    > передний план.

    А нафих Mutex?
    Memory mapped file or Semaphore, на худой конец.

    > SendMessage(HWND_BROADCAST,

    Must die.

    --
    Regards, LVT.
  • Юрий Зотов © (17.11.08 15:31) [4]
  • имя (02.01.09 11:18) [5]
    Удалено модератором
  • имя (02.01.09 11:19) [6]
    Удалено модератором
  • имя (02.01.09 12:46) [7]
    Удалено модератором
  • имя (02.01.09 14:49) [8]
    Удалено модератором
 
Конференция "WinAPI" » Проблема с SendMessage [D7, WinXP]
Есть новые Нет новых   [134435   +34][b:0][p:0]