ich habe ein Programm mit einem Tray Icon. Jetzt soll das Programm angezeigt werden wenn ich eine Taste drücke. Wie bekomme ich es aber hin dass die Taste auch ohne Fokus abgefragt wird??
Danke für die Hilfe
Code: Alles auswählen
def winEvent( self, message ):
if message.message == WC.WM_HOTKEY:
print "Hotkey!"
return True, 0
else:
print message
return False, 0Code: Alles auswählen
bool winEvent( MSG *message, long *result )
{
*result = 0;
if (message.message == WM_HOTKEY)
{ cout << "Hotkey!" << endl; return true; }
return false;
}würde ich sagen das RegisterHotkey wurde nicht korrekt aufgerufen. Denn winEventFilter wird in der Qt-Eventloop (also genau da was Du willst) aufgerufen.The message procedure calls this function for every message received
Code: Alles auswählen
void RegisterHotkeys( bool unregister=false )
{
if (!unregister)
{
RegisterHotKey( NULL, 1, 0, VK_F9 );
....
RegisterHotKey( NULL, 5, 0, VK_BACK );
}
else
{
for(int i=0; i<6; i++)
UnregisterHotKey( NULL, i );
}
}Code: Alles auswählen
class Application(QtGui.QApplication):
def __init__( self, argv ):
QtGui.QApplication.__init__(self, argv)
def winEventFilter( self, msg ):
if msg.message == WC.WM_HOTKEY:
print "Hotkey!"
return True, 0
return False, 0Code: Alles auswählen
class Application : public QApplication
{
public:
Application( int & argc, char ** argv ) : QApplication(argc, argv) {;};
bool winEventFilter( MSG *msg, long * result )
{
*result = 0;
if (MSG.message == WM_HOTKEY)
{ cout << "Hotkey!" << endl; return true; }
return false;
}
};Code: Alles auswählen
RegisterHotKey(this->winId(),1,MOD_CONTROL | MOD_ALT,'M');
Code: Alles auswählen
bool MPHapp::winEventFilter(MSG *message, long *result){
*result = 0;
if(message->message == WM_HOTKEY){
this->aboutQt();
return true;
}
else return false;
}