Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...