2010-06-22 2 views
1

Я искал способ захвата и получения системных сообщений в Qt4, в частности сообщений WM_DEVICECHANGE среди других. Я знаю, как на C#, но могу найти любой убедительный текст о том, как в Qt4. Заранее спасибо ..Каков стандартный способ улавливания системных сообщений в Qt4?

ответ

1

Посмотрите на реализацию метода winEvent(), скажем, в подклассе MainWindow.

#include "Windows.h" 
#include "Dbt.h" 

bool MainWindow::winEvent(MSG *message, long *result) 
{ 
    if (message->message==WM_DEVICECHANGE) 
    { 
     ui->plainTextEdit->appendPlainText("WM_DEVICECHANGE message received"); 
     if (message->wParam==DBT_DEVICEARRIVAL) 
      ui->plainTextEdit->appendPlainText("A new device has arrived"); 
     if (message->wParam==DBT_DEVICEREMOVECOMPLETE) 
      ui->plainTextEdit->appendPlainText("A device has been removed"); 
    } 
    return false; 
} 

я только протестировали выше, вставив мой USB видеокамеру в систему и удалить его и я получил соответствующий ищет выход в незашифрованном редактирования. Конечно, вы должны увидеть дополнительную информацию о методе winEvent() в документах Qt. (Для информации о том, когда возвращать false или true из функции и т. Д.)

+0

Большое спасибо. Я был более или менее на том же пути. –

+0

Просто быстрый вопрос. (Я сейчас учащийся). Вам нужно было зарегистрировать свое приложение с помощью системы Windows (например, RegisterDeviceNotification()), которую я прошу, потому что я добавил код к некоторому учебному коду, и я получаю ошибку времени компиляции: C: /Qt/2010.04/mingw/bin/mingw32-make.exe "вышел с кодом% 2. –

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