Autor Beitrag
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 16.07.02 12:51 
Hi Leute,

ich weiss nicht, ob ihr das Programm Enabler/Disabler von Mr Drone kennt. Das Programm besorgt einem das Handle von einem Fenster, das man mit einem Rechtsklick markiert.

Also, man klickt auch die Oberfläche des Programms, dann zieht man über den Bildschirm und immer wenn man über ein neues Fenster kommt (z.B.: RichEdit oder sowas), holt er einem das Handle von dem Fenster, über dem der Cursor ist.

Hat da jemand ne Idee?

_________________
Viele Grüße
Jakob
Marc
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 169

Win 2000, Win XP, SuSE Linux 8.2

BeitragVerfasst: Di 16.07.02 13:33 
DeCodeGuru hat folgendes geschrieben:
Hat da jemand ne Idee?

Was für eine Idee?

Gruß Marc
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 16.07.02 13:49 
Zitat:
Was für eine Idee?


Aja, wie man das machen könnte?

_________________
Viele Grüße
Jakob
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 16.07.02 14:09 
DeCodeGuru hat folgendes geschrieben:
Aja, wie man das machen könnte?

PC MAGAZIN, Ausgabe 6/2002, Seite 187.

Das dortige Beispiel hat zwar einen anderen Sinn (nämlich das Auslesen von Listbox-Einträgen), lässt sich aber so anpassen, dass dein Problem damit gelöst werden kann.
Pit
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Di 16.07.02 14:49 


Zuletzt bearbeitet von Pit am Sa 05.10.02 07:49, insgesamt 1-mal bearbeitet
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 16.07.02 18:14 
Hey, super, ich danke euch :D

_________________
Viele Grüße
Jakob
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 16.07.02 18:34 
Meine Freude war leider etwas zu voreilig, denn ich weiss nicht so recht, wie ich die Message Systemübergreifend abfangen soll. Kann mir da noch einer helfen?

_________________
Viele Grüße
Jakob
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 16.07.02 20:08 
MathiasSimmack hat folgendes geschrieben:
PC MAGAZIN, Ausgabe 6/2002, Seite 187.

Da steht´s drin. Auch die von Pit erwähnte Funktion.
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 16.07.02 20:10 
Hi Mathias,

ich habe das Heft herausgesucht und habe alles so gemacht, wie es beschrieben wurde. Es funtzt auch, leider nur innerhalb meiner Form. Ich möchte aber auch die Handles von anderen Programmen habe. Und das funktioniert bei mir noch nicht.

_________________
Viele Grüße
Jakob
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 16.07.02 20:32 
ok, mir würde es ausreichen, wenn ich wüsste, wie ich mit der Message WM_MouseMove systemweit eine Procedure aufrufen kann. Oder muss ich dafür extra einen Hook installieren?

_________________
Viele Grüße
Jakob
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.07.02 08:14 
DeCodeGuru hat folgendes geschrieben:
Es funtzt auch, leider nur innerhalb meiner Form.

Dann hast du wohl was falsch gemacht. Ich kann nämlich ohne größere Probleme die Listbox in den Netzwerkeinstellungen (rechte Maustaste -> Netzwerkumgebung/Eigenschaften) auslesen lassen.

Klar, das Programm flackert ganz schön, und es stürzt auch schon mal ab, aber mir wurden alle Texte der besagten Listbox (und auch anderer) angezeigt.
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Mi 17.07.02 11:09 
Hey Mathias,

also ich habe jetzt alles so gemacht, wie es im Heft beschrieben wurde. Leider funktioniert das nur innerhalb meines Formulars.

So, dann habe ich mir mit WindowFromPoint die Handles der Fenster geholt, über denen der Cursor ist. Das funktioniert auch wunderbar. Leider musste ich aus verzweiflungsgründen einen Timer verwenden. Jetzt möchte ich eigentlich nur wissen, wie ich das WM_MouseMove-Ereignis global abfangen kann.

Kannste mir da helfen, habe nämlich in Bezug auf Messages null Ahnung.

_________________
Viele Grüße
Jakob
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.07.02 11:57 
Warum nimmst du denn nicht die CD vom Heft?
Da ist doch das Programm drauf.
:?:
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Mi 17.07.02 12:02 
Habe ich doch schon gemacht. Aber das Programm funktioniert nur Programmintern, d.h. das Ereignis tritt nur auf, wenn ich über ein Memo in meinem Programm fahre. Aber ich will, dass das Ereignis auch auftritt, wenn ich über ein Memo in einem völlig fremden Programm fahre. Das funktioniert eben noch nicht.

_________________
Viele Grüße
Jakob
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.07.02 14:44 
Hi DeCodeGuru.

Ich glaube irgendwie nicht, dass man zwei verschiedene Ausgaben des PC MAGAZIN verkauft. Ich gehe also mal davon aus, dass du deine Programmversion ganz schön verhunzt hast. Bei mir gab es nämlich nur ein einziges Problem: als ich versucht habe, den Inhalt von Notepad auszulesen, ist das Programm abgestürzt.

Lösung: ich habe in der "OnMouseUp"-Routine des Labels alles auskommentiert, was zwischen diesen beiden Zeilen steht:
ausblenden Quelltext
1:
2:
3:
4:
5:
log(format(' - class: %s', [b]));

(* auskommentieren *)

log('trying to retrieve alternative window text...');

Das sind nur Prüfungen, ob´s eine Listbox, eine Combobox oder ein Multiline-Edit ist. Ohne diese Prüfung benutzt das Programm am Ende WM_GETTEXT, was ebenfalls funktioniert - und (in dem Fall) auch den Absturz verschwinden ließ.

Und Notepad ist wohl der Beweis, dass es nicht auf´s eigene Programm beschränkt ist.

Du weißt hoffentlich, dass du auf dem Label die linke Maustaste drücken und gedrückt halten musst :?: Du lässt sie erst über dem Objekt deiner Begierde (meinetwegen irgendeinem Memo) wieder los, und dann zeigt dir das Programm aus dem PC MAGAZIN auch den gefundenen Text an.


Mathias.