2014-10-16 3 views
-1

У меня есть C++ окна формы, которые могут захватывать сообщения, отправленные в приложении, используя следующий код:C++ Windows Forms Capture сообщения Операционной системы

protected: 
virtual void WndProc(Message% m) override 
{ 
switch (m.Msg) 
{ 
    case WM_USER: 
     MessageBox::Show("Encountered WM_USER message"); 
     break; 

    case WM_DESTROY: 
     MessageBox::Show("Closing application.."); 
     break; 

    default: 
     break; 
} 
__super::WndProc(m); 
} 

Это правильно срабатывает, когда сообщение WM_USER или WM_DESTROY сообщения отправлено в приложении, но не записывает сообщения при отправке из других приложений. Мне нужно иметь доступ к сообщениям, которые явно не предназначены для окна в приложении.

Форма создана и выполнена с использованием Приложение :: Run (gcnew Form1()); , который также запускает цикл сообщений.

Возможно ли получить доступ к сообщениям операционной системы в этом методе использования C++ и Windows Forms?

ответ

1

Метод WndProc будет выполняться всякий раз, когда ваше сообщение обрабатывается вашим окном. Если метод не выполняется, то очевидный вывод заключается в том, что сообщения, которые вы надеетесь захватить, не отправляются в ваше окно.

+0

Действительно. Похож на [UIPI] (http://en.wikipedia.org/wiki/User_Interface_Privilege_Isolation) на работе. –

+0

Я понимаю, что я знаю, что сообщения, которые я надеюсь захватить, не отправляются специально в мое окно. Однако есть ли способ захвата этих сообщений, которые не отправляются в окно? – RGoodman

+0

Может быть. Вы должны задать вопрос об этом. –

Смежные вопросы