Cherche testeur avec Vista
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Rha, je dois pas trouvé le bon ComboBox, ca doit lire le combobox de recherche ou un truc de ce genre, il faut que je verrouille plus ma recherche de la barre d'adresse
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Et comme ça
toujours le même principe :
J'ai besoin du contenu de la fenêtre de debug en résultat
et de savoir si vous avez l'explorateur d'ouvert sous "c:\windows"
et si il n'y a plus de bordure et de barre de titre sur la fenêtre de l'explorateur, merci.
toujours le même principe :
J'ai besoin du contenu de la fenêtre de debug en résultat
et de savoir si vous avez l'explorateur d'ouvert sous "c:\windows"
et si il n'y a plus de bordure et de barre de titre sur la fenêtre de l'explorateur, merci.
Code : Tout sélectionner
Global Recherche_BarreAdresse, ExploreurID, Exploreur_Adresse_ID
Procedure Recherche_BarreAdresse(hwnd.l, lParam.l)
Protected Class.s
Memoire = AllocateMemory(50)
GetClassName_(hwnd, Memoire, 50)
Class = PeekS(Memoire)
If Class = "Edit"
hwnd_parent = GetParent_(hwnd) ; ComboBox
Debug "Class Edit"
Adresse.s = Space(#MAX_PATH)
SendMessage_(hwnd, #WM_GETTEXT, #MAX_PATH, @Adresse)
Debug Adresse
GetClassName_(hwnd_parent, Memoire, 50)
Class = PeekS(Memoire)
If Class = "ComboBox"
Debug "Class ComboBox"
If OSVersion() = #PB_OS_Windows_Vista
hwnd_parent = GetParent_(hwnd_parent) ; ComboBoxEx32
hwnd_parent = GetParent_(hwnd_parent) ; msctls_progress32
hwnd_parent = GetParent_(hwnd_parent) ; Address Band Root
GetClassName_(hwnd_parent, Memoire, 50)
Class = PeekS(Memoire)
If Class = "Address Band Root"
Debug "Class Address Band Root"
Recherche_BarreAdresse = hwnd
EndIf
Else
Recherche_BarreAdresse = hwnd
EndIf
EndIf
EndIf
FreeMemory(Memoire)
ProcedureReturn #True
EndProcedure
Procedure Ouvre_Exploreurs()
Protected NewList Liste_Fenetres()
; On liste les fenêtres visibles
hwnd.l = FindWindow_(0, 0)
While hwnd <> 0
If GetWindowLong_(hwnd, #GWL_STYLE) & #WS_VISIBLE And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_SYSMENU And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_BORDER And GetParent_(hwnd) = 0
AddElement(Liste_Fenetres())
Liste_Fenetres() = hwnd
EndIf
hwnd = GetWindow_(hwnd, #GW_HWNDNEXT)
Wend
; Exploreur
RunProgram("explorer.exe", "/e,/n,c:\", "")
; Recherche des Exploreurs
Temps = ElapsedMilliseconds()
Repeat
Delay(100) ; On attend un peu
hwnd.l = FindWindow_(0, 0)
While hwnd And ExploreurID = 0
If GetWindowLong_(hwnd, #GWL_STYLE) & #WS_VISIBLE And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_SYSMENU And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_BORDER And GetParent_(hwnd) = 0
LastWindowID = hwnd
; On recherche si la fenêtre existait déjà
ForEach Liste_Fenetres()
If LastWindowID = Liste_Fenetres()
LastWindowID = 0
Break
EndIf
Next
EndIf
If LastWindowID ; on a trouvé une nouvelle fenêtre
Debug "nouvelle fenêtre trouvée"
Debug LastWindowID
Recherche_BarreAdresse = 0
EnumChildWindows_(LastWindowID, @Recherche_BarreAdresse(), 0)
If Recherche_BarreAdresse
Debug "Barre d'aresse"
Debug Recherche_BarreAdresse
Adresse.s = Space(#MAX_PATH)
SendMessage_(Recherche_BarreAdresse, #WM_GETTEXT, #MAX_PATH, @Adresse)
Debug "'" + Adresse + "'"
If LCase(Adresse) = "c:\"
Debug ">> Exploreur"
ExploreurID = LastWindowID
Exploreur_Adresse_ID = Recherche_BarreAdresse
EndIf
EndIf
AddElement(Liste_Fenetres())
Liste_Fenetres() = hwnd
Else
hwnd = GetWindow_(hwnd, #GW_HWNDNEXT)
EndIf
Wend
If ElapsedMilliseconds() - Temps > 10000
MessageRequester("Erreur", "Pas d'explorateur trouvé")
End
EndIf
Until ExploreurID <> 0
; Intégration des 2 Exploreurs dans le programme
SetWindowLong_(ExploreurID, #GWL_HWNDPARENT, WindowID(0))
SetWindowLong_(ExploreurID, #GWL_STYLE, GetWindowLong_(ExploreurID, #GWL_STYLE) & ~#WS_TILEDWINDOW)
MoveWindow_(ExploreurID, 100, 100, 500, 300, 1)
; Chargement de dossier
SendMessage_(Exploreur_Adresse_ID, #WM_SETTEXT, 0, "c:\windows\")
SendMessage_(Exploreur_Adresse_ID, #WM_KEYDOWN, #VK_RETURN, 0)
SendMessage_(Exploreur_Adresse_ID, #WM_KEYUP, #VK_RETURN, 0)
EndProcedure
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 800, 600, "Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
Ouvre_Exploreurs()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu() ; Menus
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
PostMessage_(ExploreurID, #WM_CLOSE, 0, 0)
End
Dernière modification par Le Soldat Inconnu le dim. 16/nov./2008 15:21, modifié 1 fois.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
J'ai globalement la même chose que montre le screen de Jacobus
je récaplitule:
Ouverture de l'explorateur, racine C:\
(ce qui ne semblait pas être le cas sur le screen de Jacobus)
ensuite, fenetre de debug:
puis, apparait: Erreur: Pas d'explorateur trouvé.
Voilà.
je récaplitule:
Ouverture de l'explorateur, racine C:\
(ce qui ne semblait pas être le cas sur le screen de Jacobus)
ensuite, fenetre de debug:
Code : Tout sélectionner
nouvelle fenêtre trouvé
262798
Barre d'aresse
262808
"
nouvelle fenêtre trouvé
262734
nouvelle fenêtre trouvé
394126
Voilà.
Force et sagesse...
Même topo en gros.
J'ai essayé de modifier l'accès au répertoire en utilisant l'api ShellExecute_() ce qui ouvre bien c:\Windows\ mais les effets secondaires sont les mêmes...
J'ai essayé de modifier l'accès au répertoire en utilisant l'api ShellExecute_() ce qui ouvre bien c:\Windows\ mais les effets secondaires sont les mêmes...
Code : Tout sélectionner
Global Recherche_BarreAdresse, ExploreurID, Exploreur_Adresse_ID
Procedure.s GetWindowsSystemDirectory()
Path.s=Space(500)
GetSystemDirectory_(@Path,500)
ProcedureReturn Path
EndProcedure
Procedure Recherche_BarreAdresse(hwnd.l, lParam.l)
Protected Class.s
Memoire = AllocateMemory(50)
GetClassName_(hwnd, Memoire, 50)
Class = PeekS(Memoire)
If Class = "Edit"
hwnd_parent = GetParent_(hwnd) ; ComboBox
GetClassName_(hwnd_parent, Memoire, 50)
Class = PeekS(Memoire)
If Class = "ComboBox"
If OSVersion() = #PB_OS_Windows_Vista
hwnd_parent = GetParent_(hwnd_parent) ; ComboBoxEx32
hwnd_parent = GetParent_(hwnd_parent) ; msctls_progress32
hwnd_parent = GetParent_(hwnd_parent) ; Address Band Root
GetClassName_(hwnd_parent, Memoire, 50)
Class = PeekS(Memoire)
If Class = "Address Band Root"
Recherche_BarreAdresse = hwnd
EndIf
Else
Recherche_BarreAdresse = hwnd
EndIf
EndIf
EndIf
FreeMemory(Memoire)
ProcedureReturn #True
EndProcedure
Procedure Ouvre_Exploreurs()
Protected NewList Liste_Fenetres()
; On liste les fenêtres visibles
hwnd.l = FindWindow_(0, 0)
While hwnd <> 0
If GetWindowLong_(hwnd, #GWL_STYLE) & #WS_VISIBLE And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_SYSMENU And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_BORDER And GetParent_(hwnd) = 0
AddElement(Liste_Fenetres())
Liste_Fenetres() = hwnd
EndIf
hwnd = GetWindow_(hwnd, #GW_HWNDNEXT)
Wend
; Exploreur
;RunProgram("explorer.exe", "/e,/n,c:\", "")
ShellExecute_(0,"explore",GetPathPart(GetSystemDirectory()),0,0,1)
; Recherche des Exploreurs
Temps = ElapsedMilliseconds()
Repeat
Delay(100) ; On attend un peu
hwnd.l = FindWindow_(0, 0)
While hwnd And ExploreurID = 0
If GetWindowLong_(hwnd, #GWL_STYLE) & #WS_VISIBLE And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_SYSMENU And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_BORDER And GetParent_(hwnd) = 0
LastWindowID = hwnd
; On recherche si la fenêtre existait déjà
ForEach Liste_Fenetres()
If LastWindowID = Liste_Fenetres()
LastWindowID = 0
Break
EndIf
Next
EndIf
If LastWindowID ; on a trouvé une nouvelle fenêtre
Debug "nouvelle fenêtre trouvée"
Debug LastWindowID
Recherche_BarreAdresse = 0
EnumChildWindows_(LastWindowID, @Recherche_BarreAdresse(), 0)
If Recherche_BarreAdresse
Debug "Barre d'aresse"
Debug Recherche_BarreAdresse
Adresse.s = Space(#MAX_PATH)
SendMessage_(Recherche_BarreAdresse, #WM_GETTEXT, #MAX_PATH, @Adresse)
Debug "'" + Adresse + "'"
If LCase(Adresse) = "c:\"
Debug ">> Exploreur"
ExploreurID = LastWindowID
Exploreur_Adresse_ID = Recherche_BarreAdresse
EndIf
EndIf
AddElement(Liste_Fenetres())
Liste_Fenetres() = hwnd
Else
hwnd = GetWindow_(hwnd, #GW_HWNDNEXT)
EndIf
Wend
If ElapsedMilliseconds() - Temps > 10000
MessageRequester("Erreur", "Pas d'explorateur trouvé")
End
EndIf
Until ExploreurID <> 0
; Intégration des 2 Exploreurs dans le programme
SetWindowLong_(ExploreurID, #GWL_HWNDPARENT, WindowID(0))
SetWindowLong_(ExploreurID, #GWL_STYLE, GetWindowLong_(ExploreurID, #GWL_STYLE) & ~#WS_TILEDWINDOW)
MoveWindow_(ExploreurID, 100, 100, 500, 300, 1)
; Chargement de dossier
SendMessage_(Exploreur_Adresse_ID, #WM_SETTEXT, 0, "c:\windows\")
SendMessage_(Exploreur_Adresse_ID, #WM_KEYDOWN, #VK_RETURN, 0)
SendMessage_(Exploreur_Adresse_ID, #WM_KEYUP, #VK_RETURN, 0)
EndProcedure
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 800, 600, "Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
Ouvre_Exploreurs()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu() ; Menus
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
PostMessage_(ExploreurID, #WM_CLOSE, 0, 0)
End
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
non, non, faut pas utiliser shellexecute
Ce que je cherche à faire, c'est
- de trouver la fenêtre de l'explorateur
- de lire le contenu de la barre d'adresse
- de changer le contenu de la barre d'adresse
Ce que je cherche à faire, c'est
- de trouver la fenêtre de l'explorateur
- de lire le contenu de la barre d'adresse
- de changer le contenu de la barre d'adresse
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Bon, j'ai mis des debug partout dans le dernier code pour trouvé ce qui ne va pas.
Pouvez vous me donnez le contenu de la fenêtre de debug, merci
Lancer le code précédent, je l'ai mis à jour
Pouvez vous me donnez le contenu de la fenêtre de debug, merci
Lancer le code précédent, je l'ai mis à jour
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
meme résultat niveau comportement, avec dans la fenêtre debug ceci:
Code : Tout sélectionner
nouvelle fenêtre trouvée
393836
Class Edit
Class ComboBox
Class Address Band Root
Class Edit
Class Edit
Barre d'aresse
459366
''
nouvelle fenêtre trouvée
393848
Class Edit
Class ComboBox
nouvelle fenêtre trouvée
459388
Force et sagesse...
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
rhaaa zut alors
Je chope bien la bonne zone d'édition mais je n'arrive pas à lire le texte contenu dans la barre d'adresse. C'est quoi ce bazar ...
Je chope bien la bonne zone d'édition mais je n'arrive pas à lire le texte contenu dans la barre d'adresse. C'est quoi ce bazar ...
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
on recommence avec un autre code pour annalyser la zone d'adresse
vous ne donnez pas le fcous à la barre d'adresse, vous placez juste la souris au dessus.
vous attendez que la barre de progression soit pleine
vous cliquez sur figer et vous copier le résultat ici
Pas compatible pb 4.3, je précise, if faut modifier l'api WindowFromPoint_( à la ligne 190 sinon
vous ne donnez pas le fcous à la barre d'adresse, vous placez juste la souris au dessus.
vous attendez que la barre de progression soit pleine
vous cliquez sur figer et vous copier le résultat ici
Pas compatible pb 4.3, je précise, if faut modifier l'api WindowFromPoint_( à la ligne 190 sinon
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4.20
;
; Explication du programme :
; Obtenir des informations sur la fenêtre sous la souris, ainsi que toutes les fenêtres parentes.
Structure Style_Info
Value.l
Text.s
EndStructure
Global NewList style.Style_Info()
;{ Liste des styles
AddElement(Style()) : Style()\Value = #WS_BORDER : Style()\Text = "#WS_BORDER"
AddElement(Style()) : Style()\Value = #WS_CAPTION : Style()\Text = "#WS_CAPTION"
AddElement(Style()) : Style()\Value = #WS_CHILD : Style()\Text = "#WS_CHILD"
AddElement(Style()) : Style()\Value = #WS_CHILDWINDOW : Style()\Text = "#WS_CHILDWINDOW"
AddElement(Style()) : Style()\Value = #WS_CLIPCHILDREN : Style()\Text = "#WS_CLIPCHILDREN"
AddElement(Style()) : Style()\Value = #WS_CLIPSIBLINGS : Style()\Text = "#WS_CLIPSIBLINGS"
AddElement(Style()) : Style()\Value = #WS_DISABLED : Style()\Text = "#WS_DISABLED"
AddElement(Style()) : Style()\Value = #WS_DLGFRAME : Style()\Text = "#WS_DLGFRAME"
AddElement(Style()) : Style()\Value = #WS_GROUP : Style()\Text = "#WS_GROUP"
AddElement(Style()) : Style()\Value = #WS_HSCROLL : Style()\Text = "#WS_HSCROLL"
AddElement(Style()) : Style()\Value = #WS_ICONIC : Style()\Text = "#WS_ICONIC"
AddElement(Style()) : Style()\Value = #WS_MAXIMIZE : Style()\Text = "#WS_MAXIMIZE"
AddElement(Style()) : Style()\Value = #WS_MAXIMIZEBOX : Style()\Text = "#WS_MAXIMIZEBOX"
AddElement(Style()) : Style()\Value = #WS_MINIMIZE : Style()\Text = "#WS_MINIMIZE"
AddElement(Style()) : Style()\Value = #WS_MINIMIZEBOX : Style()\Text = "#WS_MINIMIZEBOX"
AddElement(Style()) : Style()\Value = #WS_OVERLAPPED : Style()\Text = "#WS_OVERLAPPED"
AddElement(Style()) : Style()\Value = #WS_OVERLAPPEDWINDOW : Style()\Text = "#WS_OVERLAPPEDWINDOW"
AddElement(Style()) : Style()\Value = #WS_POPUP : Style()\Text = "#WS_POPUP"
AddElement(Style()) : Style()\Value = #WS_POPUPWINDOW : Style()\Text = "#WS_POPUPWINDOW"
AddElement(Style()) : Style()\Value = #WS_SIZEBOX : Style()\Text = "#WS_SIZEBOX"
AddElement(Style()) : Style()\Value = #WS_SYSMENU : Style()\Text = "#WS_SYSMENU"
AddElement(Style()) : Style()\Value = #WS_TABSTOP : Style()\Text = "#WS_TABSTOP"
AddElement(Style()) : Style()\Value = #WS_THICKFRAME : Style()\Text = "#WS_THICKFRAME"
AddElement(Style()) : Style()\Value = #WS_TILED : Style()\Text = "#WS_TILED"
AddElement(Style()) : Style()\Value = #WS_TILEDWINDOW : Style()\Text = "#WS_TILEDWINDOW"
AddElement(Style()) : Style()\Value = #WS_VISIBLE : Style()\Text = "#WS_VISIBLE"
AddElement(Style()) : Style()\Value = #WS_VSCROLL : Style()\Text = "#WS_VSCROLL"
;}
Global NewList StyleEx.Style_Info()
;{ Liste des styles étendus
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_ACCEPTFILES : StyleEx()\Text = "#WS_EX_ACCEPTFILES"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_CAPTIONOKBTN : StyleEx()\Text = "#WS_EX_CAPTIONOKBTN"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_CLIENTEDGE : StyleEx()\Text = "#WS_EX_CLIENTEDGE"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_CONTEXTMENU : StyleEx()\Text = "#WS_EX_CONTEXTMENU"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_DLGMODALFRAME : StyleEx()\Text = "#WS_EX_DLGMODALFRAME"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_INK : StyleEx()\Text = "#WS_EX_INK"
#WS_EX_LAYERED = $00080000
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_LAYERED : StyleEx()\Text = "#WS_EX_LAYERED"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_LAYOUTRTL : StyleEx()\Text = "#WS_EX_LAYOUTRTL"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_LTRREADING : StyleEx()\Text = "#WS_EX_LTRREADING"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NOACTIVATE : StyleEx()\Text = "#WS_EX_NOACTIVATE"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NOANIMATION : StyleEx()\Text = "#WS_EX_NOANIMATION"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NODRAG : StyleEx()\Text = "#WS_EX_NODRAG"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NOINHERITLAYOUT : StyleEx()\Text = "#WS_EX_NOINHERITLAYOUT"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_OVERLAPPEDWINDOW : StyleEx()\Text = "#WS_EX_OVERLAPPEDWINDOW"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_PALETTEWINDOW : StyleEx()\Text = "#WS_EX_PALETTEWINDOW"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_RTLREADING : StyleEx()\Text = "#WS_EX_RTLREADING"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_STATICEDGE : StyleEx()\Text = "#WS_EX_STATICEDGE"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_TOOLWINDOW : StyleEx()\Text = "#WS_EX_TOOLWINDOW"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_TOPMOST : StyleEx()\Text = "#WS_EX_TOPMOST"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_WINDOWEDGE : StyleEx()\Text = "#WS_EX_WINDOWEDGE"
;}
Procedure Analyse_Window(hwnd.l)
Niveau = 0
Element = -1
ClearGadgetItemList(0)
Repeat
If Niveau = 0
Element + 1 : AddGadgetItem(0, Element, "Sous la souris", 0, 0)
Else
Element + 1 : AddGadgetItem(0, Element, "Parent " + Str(Niveau), 0, 0)
EndIf
Element + 1 : AddGadgetItem(0, Element, "hWnd = " + Str(hwnd), 0, 1)
SetGadgetItemState(0, Element - 1, #PB_Tree_Expanded)
Text1.s = Space(255)
GetWindowText_(hwnd, @Text1, 255)
Text2.s = Space(255)
SendMessage_(hwnd, #WM_GETTEXT, 255, @Text2)
If Text1 Or Text2
Element + 1 : AddGadgetItem(0, Element, "Text", 0, 1)
EndIf
If Text1
Element + 1 : AddGadgetItem(0, Element, "GetWindowText_(...) = " + Text1, 0, 2)
EndIf
If Text2
Element + 1 : AddGadgetItem(0, Element, "SendMessage_(...) = " + Text2, 0, 2)
EndIf
If (Text1 And Text2 = "") Or (Text1 = "" And Text2)
SetGadgetItemState(0, Element - 1, #PB_Tree_Expanded)
ElseIf Text1 And Text2
SetGadgetItemState(0, Element - 2, #PB_Tree_Expanded)
EndIf
Class.s = Space(255)
GetClassName_(hwnd, @Class, 256)
If Class
Element + 1 : AddGadgetItem(0, Element, "Class = " + Class, 0, 1)
EndIf
Element + 1 : AddGadgetItem(0, Element, "Size", 0, 1)
GetWindowRect_(hwnd, Size.RECT)
Element + 1 : AddGadgetItem(0, Element, "Left = " + Str(Size\left) + " / Right = " + Str(Size\right), 0, 2)
SetGadgetItemState(0, Element - 1, #PB_Tree_Expanded)
Element + 1 : AddGadgetItem(0, Element, "Top = " + Str(Size\top) + " / Bottom = " + Str(Size\bottom), 0, 2)
Element + 1 : AddGadgetItem(0, Element, "Width = " + Str(Size\right - Size\left), 0, 2)
Element + 1 : AddGadgetItem(0, Element, "Height = " + Str(Size\bottom - Size\top), 0, 2)
Window_Style = GetWindowLong_(hwnd, #GWL_STYLE)
If Window_Style
Element + 1 : AddGadgetItem(0, Element, "Style", 0, 1)
ForEach Style()
If Window_Style & Style()\Value
Element + 1 : AddGadgetItem(0, Element, Style()\Text, 0, 2)
EndIf
Next
EndIf
Window_StyleEx = GetWindowLong_(hwnd, #GWL_EXSTYLE)
If Window_StyleEx
Element + 1 : AddGadgetItem(0, Element, "Style Ex", 0, 1)
ForEach StyleEx()
If Window_StyleEx & StyleEx()\Value
Element + 1 : AddGadgetItem(0, Element, StyleEx()\Text, 0, 2)
EndIf
Next
EndIf
hwnd = GetParent_(hwnd)
Niveau + 1
Until hwnd = 0
EndProcedure
#Rafraichissement = 1000
#Vitesse = 50
#Temps_Max = #Rafraichissement / #Vitesse
#Largeur = 220
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, #Largeur, 464, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
StickyWindow(0, 1)
TreeGadget(0, 0, 0, #Largeur, 400)
ButtonGadget(1, 0, 400, #Largeur, 22, "Figer", #PB_Button_Toggle)
ButtonGadget(2, 0, 422, #Largeur, 22, "Copier")
ProgressBarGadget(3, 0, 444, #Largeur, 20, 0, #Temps_Max, #PB_ProgressBar_Smooth)
SetTimer_(WindowID(0), 1, #Vitesse, 0)
Temps = 0
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Figer = GetGadgetState(1)
Case 2
Texte.s = ""
For n = 0 To CountGadgetItems(0) - 1
For Niveau = 1 To GetGadgetItemAttribute(0, n, #PB_Tree_SubLevel)
Texte + Chr(9)
Next
Texte + GetGadgetItemText(0, n)
Texte + Chr(13) + Chr(10)
Next
SetClipboardText(Texte)
EndSelect
Case #WM_TIMER
Select EventwParam()
Case 1
Survol_Souris = WindowFromPoint_(DesktopMouseX(), DesktopMouseY())
If Survol_Souris = Survol_Souris_Memoire And Figer = 0
If Temps = #Temps_Max
Analyse_Window(Survol_Souris)
Temps + 1
Else
Temps + 1
SetGadgetState(3, Temps)
EndIf
Else
Temps = 0
SetGadgetState(3, Temps)
Survol_Souris_Memoire = Survol_Souris
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
KillTimer_(WindowID(0), 1)
End
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
voici ce que j'obtiens:
Code : Tout sélectionner
Sous la souris
hWnd = 1377146
Class = SysTreeView32
Size
Left = 730 / Right = 950
Top = 303 / Bottom = 703
Width = 220
Height = 400
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_MAXIMIZEBOX
#WS_OVERLAPPEDWINDOW
#WS_TABSTOP
#WS_TILEDWINDOW
#WS_VISIBLE
Style Ex
#WS_EX_CLIENTEDGE
#WS_EX_OVERLAPPEDWINDOW
Parent 1
hWnd = 1180670
Text
GetWindowText_(...) = Window
SendMessage_(...) = Window
Class = WindowClass_0
Size
Left = 727 / Right = 953
Top = 280 / Bottom = 770
Width = 226
Height = 490
Style
#WS_BORDER
#WS_CAPTION
#WS_CLIPSIBLINGS
#WS_DLGFRAME
#WS_GROUP
#WS_MINIMIZEBOX
#WS_OVERLAPPEDWINDOW
#WS_POPUPWINDOW
#WS_SYSMENU
#WS_TILEDWINDOW
#WS_VISIBLE
Style Ex
#WS_EX_OVERLAPPEDWINDOW
#WS_EX_PALETTEWINDOW
#WS_EX_TOPMOST
#WS_EX_WINDOWEDGE
Force et sagesse...
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Oui, mais comme je suis dur à la détente ....Le Soldat Inconnu a écrit :, j'suis chiant hein

Nouvelle essais, en espérant cette fois fait ce qu'il faut:
Code : Tout sélectionner
Sous la souris
hWnd = 2753460
Text
GetWindowText_(...) = Adresse : C:\Users\tmyke\AppData\Roaming\Microsoft\Windows\Start Menu
SendMessage_(...) = Adresse : C:\Users\tmyke\AppData\Roaming\Microsoft\Windows\Start Menu
Class = ToolbarWindow32
Size
Left = 2344 / Right = 2766
Top = 144 / Bottom = 166
Width = 422
Height = 22
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_CLIPCHILDREN
#WS_CLIPSIBLINGS
#WS_VISIBLE
Parent 1
hWnd = 1770282
Class = Breadcrumb Parent
Size
Left = 2344 / Right = 2766
Top = 144 / Bottom = 166
Width = 422
Height = 22
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_CLIPCHILDREN
#WS_CLIPSIBLINGS
#WS_VISIBLE
Parent 2
hWnd = 1508108
Class = msctls_progress32
Size
Left = 2344 / Right = 2810
Top = 144 / Bottom = 166
Width = 466
Height = 22
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_CLIPCHILDREN
#WS_VISIBLE
Parent 3
hWnd = 787252
Class = Address Band Root
Size
Left = 2342 / Right = 2812
Top = 143 / Bottom = 167
Width = 470
Height = 24
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_CLIPCHILDREN
#WS_CLIPSIBLINGS
#WS_MAXIMIZEBOX
#WS_OVERLAPPEDWINDOW
#WS_TABSTOP
#WS_TILEDWINDOW
#WS_VISIBLE
Parent 4
hWnd = 2753528
Class = ReBarWindow32
Size
Left = 2272 / Right = 3056
Top = 139 / Bottom = 174
Width = 784
Height = 35
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_CLIPCHILDREN
#WS_CLIPSIBLINGS
#WS_GROUP
#WS_MINIMIZEBOX
#WS_OVERLAPPEDWINDOW
#WS_TILEDWINDOW
#WS_VISIBLE
Style Ex
#WS_EX_PALETTEWINDOW
#WS_EX_TOOLWINDOW
Parent 5
hWnd = 983830
Text
GetWindowText_(...) = Barre de navigation
SendMessage_(...) = Barre de navigation
Class = WorkerW
Size
Left = 2272 / Right = 3056
Top = 139 / Bottom = 174
Width = 784
Height = 35
Style
#WS_CHILD
#WS_CHILDWINDOW
#WS_CLIPCHILDREN
#WS_CLIPSIBLINGS
#WS_VISIBLE
Style Ex
Parent 6
hWnd = 3277790
Text
GetWindowText_(...) = Menu Démarrer
SendMessage_(...) = Menu Démarrer
Class = CabinetWClass
Size
Left = 2264 / Right = 3064
Top = 111 / Bottom = 711
Width = 800
Height = 600
Style
#WS_BORDER
#WS_CAPTION
#WS_CLIPSIBLINGS
#WS_DLGFRAME
#WS_GROUP
#WS_MAXIMIZEBOX
#WS_MINIMIZEBOX
#WS_OVERLAPPEDWINDOW
#WS_POPUPWINDOW
#WS_SIZEBOX
#WS_SYSMENU
#WS_TABSTOP
#WS_THICKFRAME
#WS_TILEDWINDOW
#WS_VISIBLE
Style Ex
#WS_EX_OVERLAPPEDWINDOW
#WS_EX_PALETTEWINDOW
#WS_EX_WINDOWEDGE
Force et sagesse...
C'est toujours sous vista que tu veux les résultats ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
oui, sous vista.
Et je cale, faut que je fasse un autre code pour lister tous les gadgets de l'explorateur afin de voir comment retrouver le texte de la barre d'adresse.
Et je cale, faut que je fasse un autre code pour lister tous les gadgets de l'explorateur afin de voir comment retrouver le texte de la barre d'adresse.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Je sais pourquoi tu cales. Sous Vista, si mes souvenirs sont bons, le chemin est découpé de gauche à droite. Par exemple, avec C:\Windows\System32, tu as 3 fenêtres (moi j'appelle ça des fenêtres mais tu peux appeler ça comme tu veux). Tu as la fenêtre C:, la fenêtre Windows et la fenêtre System32.
Bref : un vrai merdier mais faisable. Seulement, moi je n'ai pas le temps cte semaine.
J'espère déjà que la problématique est cernée.
Bref : un vrai merdier mais faisable. Seulement, moi je n'ai pas le temps cte semaine.
J'espère déjà que la problématique est cernée.