klicks im hintegrund zählen, visual basic, how to?

3 Antworten

Schau dir mal Hooks an:

Damit ist sowas möglich.

In wieweit du mit visual basic diese Möglichkeit nutzen kannst, weiß ich auch nicht. Vielleicht musst du umsteigen auf eine andere Sprache. (Für einen kleinen Counter sollte das aber auch möglich sein)

Außerdem solltest du dir dann eine Möglichkeit überlegen, wie du das Programm auch ohne aktivem Fenster wieder (bequem) beenden kannst.


MarkusGenervt  22.08.2016, 19:04

Es ist in VB prinzipiell möglich diese Funktionen, CallBacks und Types als API-Calls zu implementieren. Jedoch ist bei speziellen Types eine Typ-Umwandlung nicht immer leicht und in selteneren Fällen unmöglich.

Dennoch ist es bei dieser Aufgabenstellung gar nicht möglich, da hierbei Maus- und Tastatur-Eingaben ausgewertet werden sollen, welche sich aber gar nicht ereignen können, da das Fenster keinen Fokus hat.

Hooks für Key- und Mouse-Ereignisse werden also nur ausgelöst, wenn sie geschehen und das Fenster somit den Fokus hat, bzw. aktiv ist.

Das ist auch in allen anderen Sprachen so.

0
CrystalixXx  22.08.2016, 19:36
@MarkusGenervt

Erstens kann man in VB *jede* Windows-API verwenden. Zweitens ist eine Typ-Umwandlung der primitiven Typen immer möglich. Drittens ist es mit einem Hook möglich genau das erfragte Vorhaben zu realisieren.

Was meinst du, wie Keylogger funktionieren? Die haben genauso wenig ein aktives Fenster mit Fokus.

0
tDoni  22.08.2016, 19:40
@MarkusGenervt

Ich hab mal nen Mauszähler über diese Hooks programmiert. Allerdings in C, deshalb weiß ich von diesen Hooks, kann aber nichts zu VB sagen.

Diese Hooks ermöglichen aber genau das gefragte Verhalten.

Keylogger funktionieren auch oft auf diese Weiße und "arbeiten" still und heimlich im Hintergrund.

0

Wie tDoni schon sagte, dafür braucht man "Hooks".

Wenn du dich in eine andere Programmiersprache einarbeiten magst - Programme wie AutoHotkey haben sich auf so etwas spezialisiert.

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Wie sollen denn überhaupt Eingabe-Aktionen erfasst werden, wenn das Fenster nicht aktiv ist? Das macht jetzt so nicht viel Sinn.


fischfresh 
Beitragsersteller
 22.08.2016, 18:22

genau das ist die frage... wie geht das, dass es dauerhaft zählt, auch wenn es inaktiv ist..... aktuell läufts über e.KeyValue und dann die case funktion um die 2 tasten abzufragen..

0
MarkusGenervt  22.08.2016, 18:26
@fischfresh

Sorry, ich war wohl nicht präzise genug.

Es ist völlig sinnlos, denn ein inaktives Fenster kann keine Mausklicks oder Tastatur-Eingaben empfangen. Dazu muss es erst einmal aktiviert werden. Ein inaktives Fenster kann allerdings Daten empfangen, doch das geht nur über Pipes und nicht über die User-Interface-Hardware (Maus/Tastatur/etc.).

0