AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Handle und Klassen - Um welche Klasse handelt es sich?
Thema durchsuchen
Ansicht
Themen-Optionen

Handle und Klassen - Um welche Klasse handelt es sich?

Ein Thema von MisterNiceGuy · begonnen am 11. Nov 2004 · letzter Beitrag vom 12. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 17:05
Hi ich wollte aus einem FTP Programm, das einzelne Kopiervorgänge anzeigt Daten auslesen. (Dateiname, Fertigstellung etc.)
Jetzt lese ich hier überall im Forum, dass man den Klassennamen der Komponente braucht. Es handelt sich bei der Komponente um eine Art Listbox, leider weiß ich nicht was ich als Classname bei
FindWindowEX() angeben soll :/

2. und viel wichtigeres Problem:
Ich komme noch nichtmal soweit! Sitze schon seit einer halben Stunde an dem Codeschnipsel fest:

Code:
var
  FoundWindow,F2: HWND;
  WindowText: array[0..255] of char;
begin
   F2 := FindWindow('TApplication',nil);
  {Find a TButton child window}
  FoundWindow := FindWindowEx(F2, 0, 'TButton', nil);
  {Get its text}
  GetWindowText(FoundWindow, WindowText, 255);
  {Display it}
  label1.Caption := 'FindWindowEx found window handle ' +
                     IntToStr(FoundWindow) + ': ' + WindowText;
Mit XSpy hab ich den Classname der Anwendung bekommen, aber er findet nur einen Button, wenn ich
bei FoundWindow := FindWindowEx(Form1.handle, 0, 'TButton', nil); Das Form1.handle angebe. Wenn ich da F2 für einsetze, also mein ermitteltes Handle, findet er nicht
Was mach ich nur Falsch?
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 17:08
Also ich ermittle den Klassennamen in meinem Programm so:

Delphi-Quellcode:
function Klassenname(Handle: HWND): string;
begin
  SetLength(Result, 260);
  SetLength(Result, Windows.GetClassName(Handle, PChar(Result), Length(Result)));
end;
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 19:56
Zitat:
Mit XSpy hab ich den Classname der Anwendung bekommen, aber er findet nur einen Button,
Hi,

Probier's mal mit meinem WinSpy Programm.
Kannst mit "Fenster auswählen" den Button auswählen und dann im Menü "Optionen"
"FindWindow Code2" auswählen.
Dann generiert es dir automatisch den Code zum Auffinden des Buttons

Download gibt's hier: http://www.delphipraxis.net/internal...ghlight=winspy
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#4

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 20:09
Hey Toms, genial Mit deinem Programm lässt sich das machen, was ich will! Gehe ich auf die Komponente (SysListView32) und klicke auf Control Text... steht da das, was ich haben will! *freu*
Kannst du mir sagen wie du den Text ausgiebst? Wäre klasse!!

Edit:
Das müsste doch hiermit gehen (Tut es aber nicht )
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  FoundWindow,F2: HWND;
  WindowText: array[0..255] of char;
begin
   F2 := FindWindow('wxWindowClassNR',nil);
  {Find a TButton child window}
  FoundWindow := FindWindowEx(F2, 0, 'SysListView32', nil);
  {Get its text}
  GetWindowText(FoundWindow, WindowText, 255);
  {Display it}
  label1.Caption := WindowText;
end;
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#5

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 20:34
Hmm also mit
Code:
procedure TForm1.Button4Click(Sender: TObject);
var
  wnd: HWND;
    WindowText: array[0..2000] of char;
begin
  wnd := FindWindow('wxWindowClassNR',nil);
  wnd := FindWindowEx(wnd, 0, 'wxWindowClassNR', nil);
  wnd := FindWindowEx(wnd, 0, 'Button',nil);
  if wnd <> 0 then
  begin
        GetWindowText(wnd, WindowText, 2000);
      {Display it}
      memo1.Text := WindowText;
  end;
end;
bekomm ich den richtigen Text auf dem Button.
Aber mit

Code:
procedure TForm1.Button3Click(Sender: TObject);
var
  WindowText: array[0..2000] of char;
  wnd: HWND;
begin
  wnd := FindWindow('wxWindowClassNR',nil);
  wnd := FindWindowEx(wnd, 0, 'wxWindowClassNR', nil);
  wnd := FindWindowEx(wnd, 0, 'SysListView32', nil);
  if wnd <> 0 then
  begin
      GetWindowText(wnd, WindowText, 2000);
      {Display it}
      memo1.Text := WindowText;
  end;
end;
bekomm ich nicht den Inhalt der Liste Warum geht das bei dir? Was machst du anders? @toms
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 20:46
Eine ListView kannst du nicht so einfach auslesen.
Habe jetzt leider zu wenig Zeit, um dir einen Code zu posten.
Werde es dann morgen tun.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 20:48
bei listviews gibt es specielle messages, such einfach mal nach LVM-Messages. Mit denen kann man Listviews auslesen und so weiter..
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#8

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 22:23
Hab was, aber funzt net

http://www.swissdelphicenter.ch/de/showcode.php?id=1335
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 22:33
Moin MrNiceGuy,

was die Schweizer da beschreiben, bezieht sich auf die ListBox nicht auf den ListView.

Das Auslesen mit den gezeigten Techniken funktioniert aus anderen Prozessen heraus nur bei Controls die es schon unter 16 Bit Windows gab (Button, Edit, ListBox...) aber nicht mit denen, die beim 32 Bit Windows hinzugekommen sind (z.B. ListView, TreeView).
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
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#10

Re: Handle und Klassen - Um welche Klasse handelt es sich?

  Alt 11. Nov 2004, 22:57
Hi, jap das hab ich grad gelesen, ich versuche jetzt die Prozedur umzuschreiben, jedoch hapert es schon wieder. Ich ersetze das:

LB_GETCOUNT

durch ein

LVM_GETITEMCOUNT

aber da meint Delphi, dass es den Befehl nicht kenne Bevor ich jetzt verzweifle geh ich lieber erstmal schafen.

'Nacht
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:58 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