![]() |
invisible TEdit mit FindWindowEx finden
hallo community,
ich brauche mal hilfe in bezug auf FindWindowEx. erst mal mein code:
Delphi-Quellcode:
Main_ID ist ein const String = Name des Fesnters...
ItemHandle:=FindWindowEx(FindWindow(nil,Main_ID),0,'TEdit',nil);
if ParamCount>0 then SentText:=ParamStr(1) else SentText:='Show'; if ItemHandle<>0 then SendMessage(ItemHandle,WM_SETTEXT,Length(SentText),lParam(SentText)) else ShowMessage('TEdit konnte nicht gefunden werden !'); wenn ich jetzt das TEdit auf visible:=true setze, funzt es auch wunderbar...aber wenn ich es auf false setze, wird das TEdit nicht mehr gefunden. Gibt es da irgendeine lösung, dieses TEdit trotzdem (selbst wenn es unsichtbar ist) anzusprechen? thx 4 help |
Re: invisible TEdit mit FindWindowEx finden
Moin IceOnly,
erst einmal herzlich Willkommen hier in der Delphi-PRAXiS. Ich kann das Problem nicht nachvollziehen. Weder in D5 Pro, D6 PE noch D7 PE. Funktioniert einwandfrei. Vielleicht teilst Du Dir die Schachtelung von FindWindowEx und FindWindow auf, damit Du mal feststellen kannst, ob evtl. schon FindWindow fehlschlägt. Dann kannst Du Dir noch mit
Delphi-Quellcode:
nähere Informationen zurückliefern lassen, was Ursache ist.
ShowMessage(SysErrorMessage(GetLastError));
|
Re: invisible TEdit mit FindWindowEx finden
danke für den versuch mir zu helfen, aber bisher haben deine tipps bei mir (delphi 7 pro) nicht viel weitergeholfen ;_; ich stelle deshalb einfach mal meinen "ganzen" code zur verfügung (auch wenns nicht wirklich was bringt):
Delphi-Quellcode:
ich habe es nochmals ausprobiert: Edit1.Visible:=true und alles funzt wunderbar...sobald ich aber Edit1.Visible:=false setze, schlägt FindWindowEx fehl und ItemHandle entspricht 0 ;_;
procedure TForm1.FormCreate(Sender: TObject);
var ItemHandle,MainApp:HWND; SentText: String; begin if FindWindow(nil,Main_ID)=0 then begin // bla bla bla end else begin Application.ShowMainForm:=false; MainApp:=FindWindow(nil,Main_ID); ItemHandle:=FindWindowEx(MainApp,0,'TEdit',nil); if ParamCount>0 then SentText:=ParamStr(1) else SentText:='Show'; if ItemHandle<>0 then SendMessage(ItemHandle,WM_SETTEXT,Length(SentText),lParam(SentText)) else ShowMessage('TEdit konnte nicht gefunden werden !'); Application.Terminate; end; end; naja, was ich eigentlich vorhabe ist, OHNE timer die (Send)Messages abzufangen und so jede Message auf diese Art zu verarbeiten. ich habe halt das OnChange-Ereignis des Edit1 benutzt...vllt kannste mir auch einfach sagen, wie ich das mache ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 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