AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Probleme beim Finden eines Window-Handels
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim Finden eines Window-Handels

Ein Thema von thomasdrewermann · begonnen am 16. Jun 2003 · letzter Beitrag vom 17. Jun 2003
Antwort Antwort
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#1

Probleme beim Finden eines Window-Handels

  Alt 16. Jun 2003, 22:56
Hi,
ich versuche die TrayIcons alle auszublenden. Die Klasse der Trayicons heisst "TrayNotifyWnd". Ich habe den Screenshot des X-Spys angehängt. Wie lautet der zugehörige Findwindow befehl?



MFG
Thomas
Miniaturansicht angehängter Grafiken
bild1_653.gif  
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 16. Jun 2003, 23:00
Moin Thomas,

das sollte mit FindWindow gehen.
Hier kannst Du den Text, die Klasse oder auch beides angeben.
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 thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#3
  Alt 16. Jun 2003, 23:02
Hi Christian,
Habe ich auch versucht aber ich bekommen als Handle 0 zurück. Der findet die Klasse nich. Vielleicht liegt das daran das es eine ebene tiefer eingeordnet ist?

Hier der code:
showwindow(Findwindow('TrayNotifyWnd',''),SW_HIDE); MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 16. Jun 2003, 23:16
Moin Thomas,

stimmt, müsste ein Child von Shell_TrayWnd sein.

[EDIT]
Also erst das Shell_TrayWnd mit FindWindow, dann das andere mit EnumChildWindows.
[/EDIT]
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 thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#5
  Alt 16. Jun 2003, 23:16
Hi Christian,
Wie komme ich denn an den Child ran?

MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#6
  Alt 16. Jun 2003, 23:39
Irgendwie kommich mit dieser Deklaration nich klar:
Zitat:
The EnumChildWindows function enumerates the child windows that belong to the specified parent window by passing the handle to each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE.

Syntax

BOOL EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam);

Parameters

hWndParent
[in]
Handle to the parent window whose child windows are to be enumerated. If this parameter is NULL, this function is equivalent to EnumWindows.

Windows 95/98/Me: hWndParent cannot be NULL.

lpEnumFunc
[in] Pointer to an application-defined callback function. For more information, see EnumChildProc.
lParam
[in] Specifies an application-defined value to be passed to the callback function.
Return Value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.




Remarks

If a child window has created child windows of its own, EnumChildWindows enumerates those windows as well.

A child window that is moved or repositioned in the Z order during the enumeration process will be properly enumerated. The function does not enumerate a child window that is destroyed before being enumerated or that is created during the enumeration process.
Wie sieht denn jetzt ein Aufruf für meinen Fall aus?

MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 16. Jun 2003, 23:43
Moin Thomas,

mit FindWindow suchst Du das Parent Fenster und mit EnumChildWindows gehst Du dann alle Child Fenster des gefundenen Handels durch.

Beispiele müsstest Du hier einige finden.
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 thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#8
  Alt 16. Jun 2003, 23:59
Problem Gelöst:
Delphi-Quellcode:
var a:HWND;

a:=findwindowex(findwindow('Shell_TrayWnd',''),findwindow('TrayNotifyWnd',''),'TrayNotifyWnd','');

showwindow(a,sw_hide);

MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 17. Jun 2003, 11:22
Moin Thomas,

da FindWindow('TrayNotifyWnd','') Null zurückliefert, wie Du ja schon weiter oben festgestellt hast, kannst Du diesen Ausdruck auch gleich durch 0 ersetzen.
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 thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#10
  Alt 17. Jun 2003, 15:39
Stimmt,
ist mir garnicht eingefallen

Also die Exakte Version:
Delphi-Quellcode:
var a:HWND;

a:=findwindowex(findwindow('Shell_TrayWnd',''),0,'TrayNotifyWnd','');

showwindow(a,sw_hide);
MFG
thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:53 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