AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Titel von versteckten Fenstern ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Titel von versteckten Fenstern ermitteln

Ein Thema von Tyrael Y. · begonnen am 7. Okt 2003 · letzter Beitrag vom 18. Feb 2004
Antwort Antwort
Seite 1 von 3  1 23      
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#1

Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 14:24
Hallo zusammen,

wie kann man die Fenstertitel von versteckten Fenstern rausfinden?

EnumWindows liefert leider nicht alle Fenstertitel.


Grüße Tyrael
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 14:28
Moin Tyrael,

Zitat von Tyrael Y.:
EnumWindows liefert leider nicht alle Fenstertitel.


Kannst Du mal genauer angeben welche fehlen, bzw. wie Du die suchst?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 14:35
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.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 14:45
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
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 14:49
Moin Tyrael,

GetWindowText und GetWindowTextLength solltest Du mal gegen SendMessage mit WM_GETTEXT, WM_GETTEXTLENGTH austauschen.
Z.B. mit
if (tl > 0) then lässt Du schon mal alle Fenster samt deren Unterfenster aus, die keine Caption haben.

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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 15:17
ich wollte das mal probieren, aber wieso will er

Code:
SendMessage(ccHwnd, WM_GETTEXT, ccl+1, PChar(ccText));
nicht

,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
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 15:28
Moin Tyrael,

Du musst aus dem PChar ein lParam machen

lParam(PChar(...))
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 16:04
ich kriege jetzt wesenntlich mehr Fenstertitel, aber das Fenster, das ich suche ist nicht
dabei
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 16:05
hast dus schonmal mit findwindow probiert??
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Titel von versteckten Fenstern ermitteln

  Alt 7. Okt 2003, 16:27
Moin Tyrael,

hast Du auch schon daran gedacht die Fenster ohne Titel mit zu berücksichtigen?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz