AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FindWindow ? ?

Ein Thema von DeMo · begonnen am 19. Mär 2004 · letzter Beitrag vom 19. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
DeMo

Registriert seit: 11. Mär 2004
29 Beiträge
 
#1

FindWindow ? ?

  Alt 19. Mär 2004, 14:00
Ich weiß das ihr das wahrscheinlich schon 1000 mal besprochen habt !
Aber ich habe das ganze forum danach durchsucht aba nichts wirklich hilfreiches gefunden, wo soll cih den sonst hin

Also meine frage ist eigentlich simple, also eigentlich brauche ich nur hilfe ! Den ich weiß nicht wie man findwindow benutzt und wozu das eigentlich ist ! Also in allgemeinen weiß ich es ja , es übergibt mir die handle eines progs !jop aba ich weiß leider net was ich damit anfangen kann , gut ich weiß das man mit der handle das andere prog steuern kann aba wie? Und was muss ich da beachten ??

Es wäre toll wen ihr mir das an folgenden beispiel erklären könntet ! also ich will auf Windows MediaPlayer zugreifen ! und dann einfach auf die play tasete drücken ? Geht das? Wenn ja wäre ich dankbar wen mir jemand es erklären könnte !

ein gutes tut würde mir auch helfen ! danke im vorraus !
und nochmal sorry , aba ich wusste net wo ich sonst hin soll ^^ !

mfg DeMo
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: FindWindow ? ?

  Alt 19. Mär 2004, 14:35
Hi,

Ich habe mal ein Tutorial
darüber geschrieben.

Kurz gesagt,
besitzt jedes Fenster und Windows Control (Button, Editfeld usw) ein Handle.
Ein Handle ist eine 32-bit Zahl, (eigentlich ein Zeiger auf ein Objekt)

Wozu braucht man ein Fenster Handle?

Alle API Funktionen zum manipulieren von Fenstern verlangen ein Fenster Handle.
z.B ein Fenster verstecken, minimieren usw.

Wenn ein Fenster od. Control neu erstellt wird, wird ihm zugleich ein Fenster Handle zugewiesen.
(d.H, das Handle eines Fensters ändert sich immer)

Zusätzlich zu einem Fenster Handle
besitzt jedes Fenster einen Klassennamen und einen Fensternamen (kann auch ein leerer String sein)

Mit der FindWindow API kann man nun ein Fenster anhand seines Klassennamens, Fensternamens
(in allen Kombinationen) suchen und bekommt sein Fensterhandle zurück.

Bsp: Handle von Notepad ermitteln.

// handle zum Fenster // Klassenname von Notepad
Delphi-Quellcode:
var
    hWordWindow: HWND;
begin
  hNotepadWindow := FindWindow('notepad', nil);
end;
Wenn man nun das Handle von Notepad bekommen hat, kann man Notepad
z.B mit der ShowWindow API verstecken:

ShowWindow(hNotepadWindow, SW_HIDE);
Thomas
  Mit Zitat antworten Zitat
DeMo

Registriert seit: 11. Mär 2004
29 Beiträge
 
#3

Re: FindWindow ? ?

  Alt 19. Mär 2004, 14:51
Danke vielmals

toms schrieb:
Zitat:
Source:
Code:
var
    hWordWindow: HWND;
begin
  hNotepadWindow        := FindWindow('notepad', nil);
end;
hNotepadWindow ist doch nur ein schreibfehler und sollte eigentlich hWorldWindow wie oben definiert heißen oder?

Aba nochmal vielen dank das tut ist auch sehr hilfreich ! THX ^^
Noch eine frage :

Muss das Fenster(bzw Programm)offen sein ? damit ich die handle bekomme ? oda kann ich auch die handle von nicht aktiven progs bekommen ??

mfg DeMo
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: FindWindow ? ?

  Alt 19. Mär 2004, 14:53
´Nicht aktiv ja. Aber wa snicht existiert, kann auch kein Handle haben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DeMo

Registriert seit: 11. Mär 2004
29 Beiträge
 
#5

Re: FindWindow ? ?

  Alt 19. Mär 2004, 15:13
Aso klingt logisch ^^

aber hier wieso geht da net ??

Code:
var
  Form1: TForm1;
  hWinamp: HWND;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  hWinamp:= findwindow('Winamp',0);
  if hWinamp <> 0 then
    ShowMessage(' Habe Handle ^^')
  else
    ShowMessage(' Hat net Geklappt -__-');
end;
also das prog geht aba er bekommt die Handle net, also erscheint die nachricht "hat net geklappt -__-". warum ?? ist der name falsch ?? oda muss es anders rum sein ich weiß net was da falsch ist !
Bitte um hilfe
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: FindWindow ? ?

  Alt 19. Mär 2004, 15:30
Zitat:
aber hier wieso geht da net ??
Weil 'Winamp' sehr wahrscheinlich ein anderer Klassenname hat.
Thomas
  Mit Zitat antworten Zitat
DeMo

Registriert seit: 11. Mär 2004
29 Beiträge
 
#7

Re: FindWindow ? ?

  Alt 19. Mär 2004, 15:47
jop ok hast rechta aba wen ich das win api als namen nehme und nicht alls classen namen also :

hWinamp:= findwindow(0,'Winamp');


geht es auch net ! also ??
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: FindWindow ? ?

  Alt 19. Mär 2004, 16:09
Hallo DeMo,
wie schon toms geschrieben hat benötigt

Zitat von PSDK:
HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
als Paramter entweder den KlassenNamen oder den KOMPLETTEN FensterNamen des zu suchenden Controls.

Zu lpWindowName:
Bsp.: Wenn dein Fenster "Editor - Neu.txt" heißt, kannst Du nicht nur nach "Editor" suchen.


Um den KlassenNamen vom Winamp herauszufinden, kannst Du ein Tool benutzen (z:B. hier http://www.x-spy.net/de/index.html),
dass Dir den KlassenNamen jedes beliebigen Fensters/Controls liefert.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#9

Re: FindWindow ? ?

  Alt 19. Mär 2004, 16:15
hallo armin,

der link ist schon länger tod.

habe es ebend wieder probiert.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#10

Re: FindWindow ? ?

  Alt 19. Mär 2004, 16:36
Zitat von kiar:
der link ist schon länger tod.
Nein, der Link ist nicht tot.. es gibt nur schon seit einiger Zeit Probleme mit der Domain, die nicht wirklich nachvollziehbar sind. Bei mir (dem besitzer der Domain) und meinem Freund (auf dessen Server die Seite liegt) funktioniert die Domain nämlich problemlos, bei einige (vor allem aus Deutschland) wiederum gar nicht. Mein Freund auf dessen Server das ganze liegt wohnt auch in Deutschland, was das ganze aber nur noch misteriöser macht..

Du kannst aber mal die Subdomain http://motzi.fs-tools.de benutzen, die hat bis jetzt noch immer funktioniert.

Außerdem hab ich mir vor kurzem einen neuen Webspace besorgt auf den dann auch die X-Spy-Seite umziehen wird. Ich hoffe dass dann damit auch die Domain-Probleme entgültig verschwinden...
Manuel Pöter
  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 16:26 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