Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem: Abfangen aller Mausnachrichten an alle Anwendungen

Empfohlene Antworten

Veröffentlicht

Hallo, ich habe schon wieder ein unschönes Windows-Programmier-Problem:

Ich muß herausfinden, ob in einem Moment an dem Rechner gearbeitet wird. Das ist die Aufgabe.

Zwar gibt es da verschiedene Ansätze, aber ich weiß nicht wie ich am einfachsten das Ziel erreiche:

1. Abfangen alles Maus- und Tastatureingaben:

Wenn eine bestimmte Zeit keine Maus- oder Tastaturnachrichten im ganzen System versendet worden sind, dann wird nicht gearbeitet?

Die Frage hier ist nur: Wie fange ich alle Nachrichten ab? Normalerweise empfange ich doch nur Nachrichten innerhalb der eigenenen Anwendung

2. CPU-Auslastung:

Wenn die CPU-Auslastung einen Zeitraum lang, sehr niedrig ist, dann wird nicht gearbeitet.

Auch hier die Frage: Wie finde ich das heraus?

3. Gibt es vielleicht noch andere bessere Methoden?

<OffTopic>

Gibt es eine Möglichkeit diese Aufgabe auch mit Java zu lösen?

</OffTopic>

CU

themaster

Wegen dem Nachrichten abfangen. Da gab´s mal ein ähnliches Problem, wo einer jedesmal eine eindeutige FensterID haben wollte, welche auch von Anwendungen außerhalb kommt. Grundsätzlich ist ein System-Hook eine bessere Möglichkeit, aber man kann mit PreTranslateMessage() auch einen ähnlichen Effekt erzielen. Du mußt nur den Filtern aus dem Beispiel rausnehmen. Ich weiß auch auf anhieb nicht genau wie man das anstellen könnte, aber wenn man auf höherer Ebene die Funktion überschreiben könnte (z.B. vom System-Fenster - zu finden mit GetDeskTopWindow() evtl. das PreTranslateMessage() vom CWnd-Objekt hart mit dem eigenen austauschen ... hab ich ja kürzlich erklärt, mit was für Tricks man das auch ohne Erlaubnis machen kann) würde man mit Sicherheit absolut alle Nachrichten abfangen - so sind die auf bestimmt vorgefiltert glaube ich. Allerdings bekommt man nur beim Reaktivieren des Programmfensters die Messages mit einem Schlag durchgereicht (ich hab´s nicht genauer ausgetestet, aber vielleicht wird auch jede Message korrekt abgefangen und nur der Trace beim Reaktivieren aktualisiert) Vielleicht reicht Dir das schon irgendwie aus.

1. Beitrag

2. Beitrag <- hier ist das Beispiel - wirf einfach den Window-Filter raus und dann gibt´s schon wesentlich mehr zu sehen. Auch Fenster-IDs externer Fenster, die nicht zum Programm selber gehören!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.