Fremdes Editfeld auslesen
-
Hi,
Ich habe folgendes problem:
Ich lasse mir mit EnumWindows alle Fenster zurückliefern. Damit schaffe ich es zwar von dem Editfeld einer Fremden anwendung das Handle zu bekommen aber ich bekomme den Text aus diesem Feld zum verrecken nicht raus.
Ich habe es schon so versucht:
CString string;
CEdit wnd;
wnd.Attach(handle)
wnd.GetWindowText(string);
wnd.Detach();aber da hat er den Text nicht rausgerückt. Es steht aber definitiv einer drinn. Wenn ich das ganze mit einem normalen Fenster mache ist es kein Problem. Da bekomme ich den Fenstertitel ohne weiteres.
Also dachte ich mir es liegt wahrscheinlich daran das das Edit Feld nicht so ohne weiteres den Inhalt an ein anderes Programm weitergibt da ja dort z.B. auch Passwörter stehen können (so eins will ich ja auch rauslesen;)).
Also hab ichs mal so versucht:
CString string;
CEdit wnd;
wnd.Attach(handle)
CWnd* oldparent = wnd.GetParent();
wnd.SetParent(this);
wnd.GetWindowText(string);
wnd.SetParent(oldparent);
wnd.Detach();Allerdings lässt sich das Feld auch so nicht austricksen. Ich weis echt nicht mehr weiter. Kämpfe ich hier vielleicht auf verlorenem posten und das was ich versuche ist einfach nicht möglich?
Vielen dank schonmal
George
-
falls du nicht weiterkommen solltest geh mal auf http://www.luckie.de.vu und frag den Seitenbesitzer Michael Puff. Der hat sowas in seinem Programm WinInfo schon mal gemacht. Feature wurde aber wieder rausgenommen. Der ist hier auch im Forum...
-
Geht das überhaupt ab NT 5.0 eigentlich noch?? Und wenn ging das ha mit SendMessage und WM_GETTEXT oder so ähnlich
mfg
-
Du bist das also, der immer noch über die de.vu-Domaine kommt. www.luckie-online.de heißt es jetzt.
Das Auslesen ist immer noch drin. Wie es mit der MFC geht weiß ich nicht, aber mit der WinAPI. Hol dir das Handel von dem Edit und dann schick ein WM_GETTEXT an das Edit. Aber unter NT/2000/XP wirst du so das Passwortfeld nicht auslesen können, das funktioniert nur bei normalen.
Für Passwort-Felder hätte ich auch eine Idee, aber die werde ich nicht sagen, da man damit viel Scheiße bauen kann und da ich dich nicht kenne, laß ich das mal.
-
@Lucky
Danke für die Info. Ich habs die ganze Zeit nur mit Passwortfeldern versucht und dachte es funktioniert allgemein nicht. Gut zu wissen das es am schutz der Passwortfelder liegt. Kann ich verstehen das du das mit den Passwort Feldern nicht irgendeinem Wildfremnden auf die Nase bindest.Ich werds dann mal weiter versuchen irgendwie muß das ja zu schaffen sein. Ist ja klar das die Passwort felder gut gesichert sein müssen aber irgendeine Lücke muss es ja geben und die finde ich schon noch ;).
Was ich entzwischen auch mal versucht habe ist das Passwortfeld Flag mit ModifyStyle zu löschen aber das lässt er mich nicht löschen.
Hab mir deine Homepage mal angesehen. Du hast dich da ja mit einigem Auseinandergesetzt was man nicht in jedem X beliebigem Tutorial findet. Wirklich beeindruckend. Leider habe ich keine Ahnung von Delphi aber den einen oder anderen Quellcode werde ich mir mit sicherheit mal anschauen. Da kann man ja noch einiges lernen.
[ Dieser Beitrag wurde am 11.02.2003 um 13:05 Uhr von GeorgeHomes editiert. ]
-
Na ja, wenndu Delphi lesen kannst, dann solltest du auch mit meinen Tutorials klar kommen. WinAPI ist WinAPÍ, ob nun in Delphi oder C/C++. Nur mit den Zeigern muß man etwas aufpassen und den Variablendeklarationen. das meiste habe ich mir selber mit dem PSDK oder so beigebracht und da mußt e ich es von C nach Delphi umsetzen, ging auch, wie du sehen kannst.
-
Du bist das also, der immer noch über die de.vu-Domaine kommt.
Ups, kommt nie wieder vor. :o
-
Das stimmt schon. Das ist doch der vorteil der WinAPI standatisierung. Bei dem was ich vorhabe sollte ich vielleicht eh besser alles über die WinAPI machen als über die MFC da ich da dann wenigstens die volle kontrolle habe.
-
Nimm doch einfach CWnd::SendMessage is doch ganz easy.
Das sich der Stil von einem Edit-Control von Passwort auf Normaltext ändern läßt, wage ich zu bezweifeln.
-
Das Problem ist wenn man einem fremden Edit Feld die Nachricht WM_GETTEXT schickt bekommt man zwar den Text aber das funkioniert nicht mehr sobald es ein Passwort Feld ist.