![]() |
Titel von versteckten Fenstern ermitteln
Hallo zusammen,
wie kann man die Fenstertitel von versteckten Fenstern rausfinden? EnumWindows liefert leider nicht alle Fenstertitel. Grüße Tyrael |
Re: Titel von versteckten Fenstern ermitteln
Moin Tyrael,
Zitat:
Kannst Du mal genauer angeben welche fehlen, bzw. wie Du die suchst? |
Re: Titel von versteckten Fenstern ermitteln
also das hier ist ein Testprojekt und leifert leider
nicht alle Fenstertitel
Code:
program wndTitle;
uses windows, sysutils; var s, ctext, cctext: string; {$APPTYPE CONSOLE} function myEnumcChildWindows(ccHWnd: HWnd; ccLParam:integer): BOOL; stdcall; var ccl, ccln : integer; ccClass:String; begin ccl := GetWindowTextLength(ccHwnd); if (ccl > 0) then begin SetLength(cctext, ccl+1); GetWindowText(ccHwnd, PChar(cctext), ccl+1); SetLength(ccClass, 1025); ccln := GetClassName(ccHwnd, PChar(ccClass), 1024); Setlength(ccClass, ccln); writeln('--------------------------------------------'); writeln('cChildTitle: ' +ccText); writeln('cChildHandle: ' + IntToStr(ccHwnd)); writeln('cChildClassname: ' + ccClass); writeln('--------------------------------------------'); Readln; end; result := true; end; function myEnumChildWindows(cHWnd: HWnd; cLParam:integer): BOOL; stdcall; var cl, cln : integer; cClass:String; begin cl := GetWindowTextLength(cHwnd); if (cl > 0) then begin SetLength(ctext, cl+1); GetWindowText(cHwnd, PChar(ctext), cl+1); SetLength(cClass, 1025); cln := GetClassName(cHwnd, PChar(cClass), 1024); Setlength(cClass, cln); writeln('--------------------------------------------'); writeln('ChildTitle: ' +cText); writeln('ChildHandle: ' + IntToStr(cHwnd)); writeln('ChildClassname: ' + cClass); writeln('--------------------------------------------'); EnumChildWindows(cHwnd, @myEnumcChildWindows, 0); Readln; end; result := true; end; function myEnumProc(aHWnd: HWnd; aLParam: integer): BOOL; stdcall; var tl, aln: integer; aClass:string; begin tl := GetWindowTextLength(aHWnd); if (tl > 0) then begin //für Fenster SetLength(s, tl+1); GetWindowText(aHWnd, PChar(s), tl+1); SetLength(aClass, 1025); aln := GetClassName(aHwnd, PChar(aClass), 1024); Setlength(aClass,aln); writeln('Title: ' +s); writeln('Handle: ' + IntToStr(aHwnd)); writeln('Classname: ' + aClass); EnumChildWindows(aHWnd, @myEnumChildWindows, 0); writeln('*************************************************'); writeln('*************************************************'); readln; end; result := true; // To continue enumeration. end; begin EnumWindows(@myEnumProc, 0); end. |
Re: Titel von versteckten Fenstern ermitteln
also letztendlich geht es mir darum ein ganz bsetimmtes Program
unter Win95/98 zu beenden,... ...jetzt sagt ja nicht TerminateProcess, das klappt nämlich nicht ... ich mach mal einen neuen Thread auf und erklär da was ich ganz genau möchte und um welches Programm es sich handelt |
Re: Titel von versteckten Fenstern ermitteln
Moin Tyrael,
GetWindowText und GetWindowTextLength solltest Du mal gegen SendMessage mit WM_GETTEXT, WM_GETTEXTLENGTH austauschen. Z.B. mit
Delphi-Quellcode:
lässt Du schon mal alle Fenster samt deren Unterfenster aus, die keine Caption haben.
if (tl > 0) then
Nur um auf Nummer sicher zu gehen, würde ich übrigens hier auch keine Strings, sondern PChar verwenden, die dann mittels AllocMem initialisiert, und später mit FreeMem wieder freigegeben werden. AllocMem, da hier der reservierte Speicher auf #00 initialisiert wird. |
Re: Titel von versteckten Fenstern ermitteln
ich wollte das mal probieren, aber wieso will er
Code:
nicht
SendMessage(ccHwnd, WM_GETTEXT, ccl+1, PChar(ccText));
,obwohl WM_Gettext in wParam einen int und in lParam ne Adresse erwartet ??
Code:
WM_GETTEXT
wParam = (WPARAM) cchTextMax; // number of characters to copy lParam = (LPARAM) lpszText; // address of buffer for text |
Re: Titel von versteckten Fenstern ermitteln
Moin Tyrael,
Du musst aus dem PChar ein lParam machen
Delphi-Quellcode:
lParam(PChar(...))
|
Re: Titel von versteckten Fenstern ermitteln
ich kriege jetzt wesenntlich mehr Fenstertitel, aber das Fenster, das ich suche ist nicht
dabei :( |
Re: Titel von versteckten Fenstern ermitteln
hast dus schonmal mit findwindow probiert??
|
Re: Titel von versteckten Fenstern ermitteln
Moin Tyrael,
hast Du auch schon daran gedacht die Fenster ohne Titel mit zu berücksichtigen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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