![]() |
Text aus ShowMessage
Ist es irgendwie möglich herauszufinden, was in einer Showmessage steht, die von einer anderen anwendung ausgelöst wird?
also eine andere anwenung macht ne showmessage und ich will einfach nur gucken was da drinsteht, und dann den Button drücken. nur irgendwie komm ich weder an den button noch an den Text ran. achso: das handle (von der Showmessage) is gegeben...muss also net umständlich gesucht werden. |
Re: Text aus ShowMessage
[quote="glkgereon"]also eine andere anwenung macht ne showmessage und ich will einfach nur gucken was da drinsteht, und dann den Button drücken.
nur irgendwie komm ich weder an den button noch an den Text ran. quote] ist diese andere anwendung, ein ganz anderes Projekt (also mit einer eigenen .exe)? :gruebel: wenn ja so glaube ich nicht dass man dort irgendwie ran kommt. Oder, vieleicht wenn du den Text aus deiner showmessage in den Zwischenspeicher legst (automatisch im Programm) und dann mit der anderen Anwendung, mit der du irgendwas mit der Showmessage machen willst, wieder aus dem Zwischenspeicher hollst. So hättest du den Text. Gruß Hospi |
Re: Text aus ShowMessage
Also eine Showmessage-Nachricht trägt so weit ich weiß immer den Titel der Anwendung. Und wenn du den Titel weißt, bekommst du auch ganz leicht das Handle und somit evtl. auch den Text.
Musste mal ein bisschen rumsuchen :) |
Re: Text aus ShowMessage
Zitat:
|
Re: Text aus ShowMessage
Hol dir mit
![]() ![]() ![]() |
Re: Text aus ShowMessage
also, nochmal klarer:
Programm a (nicht meins) macht Showmessage Programm b (meins) will wissen was drin steht und eventuell bestätigen ich werd mir luckies vorschlöag ma angucken... |
Re: Text aus ShowMessage
ich krieg das net hin...
also hier erstmaln versuch wies aber leider net geht :(
Delphi-Quellcode:
is denn wenigstens das korrekt?
procedure FindAllSubs(Main: THandle; Buffer: array of THandle);
var i:integer; begin i:=1; Buffer[i]:=FindWindowEx(Main,0,nil,nil); while FindWindowEx(Main,Buffer[i],nil,nil)<>0 do begin Buffer[i+1]:=FindWindowEx(Main,Buffer[i],nil,nil); inc(i); end; end;
Delphi-Quellcode:
var Buf: array of Char;
Buf2: String; begin SetLength(Buf,SendMessage(Sub,WM_GETTEXTLENGTH,0,0)); SendMessage(Sub,WM_GETTEXT,sizeof(Buf),Integer(@buf2)); ShowMessage(Buf2); |
Re: Text aus ShowMessage
Delphi-Quellcode:
So wird jedoch "nur" die Caption ausgelesen. Wenn ich mich nicht irre, kann man den sonstigen text nicht auslesen.
procedure TForm1.Button2Click(Sender: TObject);
var wnd : HWND; Buf : string; begin wnd := 2491570; //mein beispielhandle SetLength(Buf,SendMessage(wnd,WM_GETTEXTLENGTH,0,0)+1); SendMessage(wnd,WM_GETTEXT,length(Buf),Integer(@buf[1])); ShowMessage(buf); end; |
Re: Text aus ShowMessage
Problem: die Caption interessiert mich nicht :(
ich "brauche" den Text wirklich... |
Re: Text aus ShowMessage
Etwas umständlich, aber falls es sonst nicht gehen sollte: Mit [Strg]+[C] kann man den Text, bzw. die ganze Messagebox doch in die Zwischenablage kopieren. Von da könntest du dann nach "FALSCH", oder "RICHTIG" suchen (dafür ist es doch, oder ;)). Du müsstest also nur die Tastenkombi senden.
MfG Pr0g |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz