Alle Messages abfangen - User noch da?



  • Ich möchte wissen ob der User noch da ist.
    Wenn der User eine bestimmte zeit nichts tuht wird das Programm beendet.
    Nun hab ich nur das Problem das anscheinend nicht alle Messeages bei meiner Klasse ankommen.

    BOOL CMeineUserTestKlasse::PreTranslateMessage( MSG* pMsg )
    {
    
    	if(pMsg->message == WM_MOUSEMOVE || pMsg->message == WM_KEYDOWN || pMsg->message ==  WM_KEYUP || pMsg->message ==  WM_SIZE )
    		nTimeToAutoClose = AUTOCLOSE;
    
    //...
    }
    

    Hier bekomme ich nur die MEssages, die für den Dlg sind und nicht für all meine Dlgs. Und ich möchte quasi für alle Dlg die von mir sind ein PreTranslateMessage

    Gibs das?



  • Warum machst du dir das so kompliziert? Starte doch einfach einen Timer der jede Minute die Cursor Position abfragt und wenn sich diese die letzten fünf minuten sich nicht geändert hat beendet sich dein Programm.



  • Macht keinen unterschied, im augenblick ist es ein Tread der immer bischen was von nTimeToAutoClose abzieht und wenn das 0 ist wird alles beendet.

    Das mit dem Cursor ist schon eine gute Idee aber was ist, wenn der Benutzer nur mit Tastatur arbeitet? Das kommt bei mir recht oft vor. Dann ist der grade schön am tippen und dann machts schupps und er ist drausen.

    Bei mir gibt auch user die nicht mit Mause arbeiten. Haben nur Tastatur. Und das soll auch nicht geändert werden.



  • Wie bekomme ich den die Cursor postion?



  • GetCursorPos



  • so zwecks tastatur und so........ GetAsyncKeyState..... vielleicht in der OnIdle Loop deiner Anwendung..... oder Tastatur und mouse hooken



  • Ist aber beides nicht tread fähieg wah?
    Also GetCursorPos geht schoneinmal nicht im tread - stürtzt immer alles ab. Wie kann ich den im Tread meine Cursorpos abfragen?


Anmelden zum Antworten