![]() |
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? |
Re: Titel von versteckten Fenstern ermitteln
Zitat:
..FindWindow(Classname, WindowTitle).... Zitat:
mir ist klar das es noch mehr Fenster gibt, die unter anderem keine Titel haben... aber mit denen kann ich ja nix anfangen |
Re: Titel von versteckten Fenstern ermitteln
du kannst findwindow auch den Klassennamen übergeben. Um den rauszubekommen gibts genug programme (mit maus drüber and klassennamen des fenster anzeigen lassen (war glaube getwindowfrompoint))
|
Re: Titel von versteckten Fenstern ermitteln
Moin Tyrael,
sollte das Fenster keinen Titel haben, könntest Du es aber über folgenden Weg versuchen: Passt der Klassenname? Enthält das Fenster Unterfenster, mit denen man es eindeutig indentifizieren kann (Klasse/Titel)? |
Re: Titel von versteckten Fenstern ermitteln
Morgen zusammen,
sry das ich mich nicht gemeldet habe, war aber nicht mehr online. Zitat:
Zitat:
Grüße Tyrael |
Re: Titel von versteckten Fenstern ermitteln
Zitat:
Alternativ gibt es aber auch noch genug andere Programme zB EDA von Assarbad oder mein X-Spy... |
Re: Titel von versteckten Fenstern ermitteln
Zitat:
weil ich auf diesen Betriebssystemen gucken müsste wie der Klasenname ist, da das Program unter Win NT Systemen anders heißt und reagiert. und außerdem.. das für mich interessante Program ist im SysTray und Assarbads Program, kann nciht jedes Program im Systray einzeln ansprechen sondern immer den gesamten Systray ich such jetzt mal nach X-Spy Gruß Tyrael |
Re: Titel von versteckten Fenstern ermitteln
@Motzi ähm X-Spy gibt es unter Google 10000000000000000000000 Stück
könntest du den Link zu dem X-Spy posten, das du meinst? |
Re: Titel von versteckten Fenstern ermitteln
habs gefunden :)
|
Re: Titel von versteckten Fenstern ermitteln
Also wenn du nach "X-Spy" suchst bin ich in Google ganz oben, und außerdem hättest du bei meinem Post nur mal unten auf die kleine Grafik mit dem "www" (dahinter verbirgt sich meistens eine Homepage ;)) klicken müssen, dann wärst du sofort auf der X-Spy Seite gewesen! ;)
Dass das Programm von Assarbad immer nur den gesamten SysTray erfasst ist richtig, und das kann mein X-Spy auch nicht besser, da der SysTray eben nur _ein_ einziges Fenster ist das eben mehrere Symbole beinhaltet! Aber du kannst im X-Spy das Fenster auch in der Prozess-Liste raussuchen, vielleicht hilft dir das ein bisschen... |
Re: Titel von versteckten Fenstern ermitteln
@Motzi dein Tool ist super :hello:
habe jetzt den Klassennamen danke dir nochmal Gruß Tyrael |
Re: Titel von versteckten Fenstern ermitteln
Mit WinForce von
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 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