EnumWindows/FindWindow - wie komme ich an LabView-Controls?



  • Tach!

    Ich möchte in der Firma einen kleinen Key- und Mauslogger schreiben, um unseren Applikationsleuten die Arbeit ein wenig zu erleichtern ("wie zum Teufel habe ich diesen Bug noch gleich hervorgerufen?"). Damit das auch was bringt, sollen nicht nur Tasten, sondern vor allem Mausklicks und die geklickten Buttons (Caption) geloggt werden.

    Unsere Software ist jedoch zu großen Teilen in LabView geschrieben. Mein Logger funktioniert an sich wunderbar, die LabView-Controls kann ich aber über EnumWindows/EnumChildWindows nicht finden. Ich habe im Internet bereits herausgefunden, dass die LV-Controls fensterlos und somit nicht über genannte Funktionen zu erreichen sind.

    Somit bin ich mit meinem Latein am Ende. Gibt es überhaupt noch irgendeine Möglichkeit, über C++ an die LV-Controls und deren Beschriftung zu kommen? Hat jemand sowas schonmal gemacht?

    Gruß Matze



  • ich weißt zwar nicht genau, was LabView ist, aber ich denke, dass du zumindest die ProzessID bekommen kannst mit Hilfe von

    CreateToolhelp32Snapshot
    

    Desweiteren könntest du dir auch die TaskmangarExtension holen, google mal nach

    TaskManagerEx2

    Damit kannst du die einiges anzeigen lassen, z.B
    Windows, Handles, ProzesseIDs, ...

    mfg supersass1



  • Danke. Ich denke zwar nicht, dass mir die Prozess-ID etwas bringt (schließlich will ich an die Caption der Buttons), aber ich werde mal ein bisschen 'rumprobieren.

    Zum TaskmanagerEx2 (gibt's denn eine Version 2?) findet man per Google übrigens nur 14 Seiten, zu TaskmanagerEx sogar nur 5. Wer also über die Suche hierher findet:

    http://www.codeguru.com/system/TaskManagerEx.html

    Hat denn sonst niemand mal vor einer ähnlichen Problematik gestanden und hat nun die ultimative Lösung für mich?

    P.S.: LabView ist ein grafisches Programmiersystem. Man schreibt keinen Code, sondern entwirft quasi Ablaufdiagramme. LV wird häufig in der Messtechnik eingesetzt. Ist ganz interessant, du kannst ja mal unseren besten Freund Google nach ein paar Bildern fragen, dann hast du eine Vorstellung von LV.

    Gruß Matze



  • Schau mal welches das kleinste Fenster ist, auf das zu zugreifen kannst.
    Hier kannst du dir dafür ein kleines Programm herunterladen: http://www.codeproject.com/threads/winspy.asp



  • Auf den TaskManagerEx habe ich verzichtet, da sich beim Download direkt mein VirenScanner gemeldet hat. Das wird zwar sicher ein Fehlalarm sein, aber man weiß ja nie. Und Spy++ erfüllt in diesem Fall den gleichen Zweck.

    Das kleinste Fenster ist, wenn ich auf die Buttons gehe, tatsächlich das umgebende, 1280*1024 große Hauptfenster (dieses Programmteils), Klassenname "LVDChild". Ferner ist auf diesem Fenster noch ein TreeView, auf den ich zugreifen kann, und ein firmeneigenes Image-Control, dass auch keine Probleme macht. Die ganzen Buttons lassen sich aber, wie gesagt, nicht mit Spy++ packen, da keine Fenster.

    Gruß Matze


Log in to reply