Cherche testeur avec Vista

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

sous vista, quelqu'un peut me copier le résultat de la fenêtre debug, merci

lancer le code en mode debug
l'explorateur s'ouvre sous c:\windows
patienter 4s (surtout toucher à rien, laisser l'explorateur au premier plan)
le programme liste les gadgets de l'explorateur

Merci :)

Code : Tout sélectionner

Procedure Recherche(hwnd.l, lParam.l)
  Tampon.s = Space(#MAX_PATH)
  GetClassName_(hwnd, @Tampon, #MAX_PATH)
  Debug "Handle = " + Str(hwnd)
  Debug "Class = '" + Tampon + "'"
  Adresse.s = Space(#MAX_PATH) 
  SendMessage_(hwnd, #WM_GETTEXT, #MAX_PATH, @Adresse) 
  Debug "Text = '" + Adresse + "'"
  Debug "Parent = " + Str(GetParent_(hwnd))
  
  Debug ""
  ProcedureReturn #True
EndProcedure

RunProgram("explorer.exe", "/e,/n,c:\windows","")

Delay(4000)

WindowID = GetForegroundWindow_()

EnumChildWindows_(WindowID, @Recherche(), 0)
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)]
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Voilà chez moi:

Code : Tout sélectionner

Handle = 197640
Class = 'BrowserFrameGripperClass'
Text = ''
Parent = 197628

Handle = 197642
Class = 'WorkerW'
Text = 'Barre de navigation'
Parent = 197628

Handle = 197638
Class = 'ReBarWindow32'
Text = ''
Parent = 197642

Handle = 197648
Class = 'TravelBand'
Text = ''
Parent = 197638

Handle = 197644
Class = 'ToolbarWindow32'
Text = ''
Parent = 197648

Handle = 263208
Class = 'Address Band Root'
Text = ''
Parent = 197638

Handle = 263204
Class = 'msctls_progress32'
Text = ''
Parent = 263208

Handle = 263230
Class = 'Breadcrumb Parent'
Text = ''
Parent = 263204

Handle = 263224
Class = 'ToolbarWindow32'
Text = 'Adresse : C:\Windows'
Parent = 263230

Handle = 197632
Class = 'ToolbarWindow32'
Text = ''
Parent = 263204

Handle = 263206
Class = 'ComboBoxEx32'
Text = 'C:\Windows'
Parent = 263204

Handle = 197634
Class = 'ComboBox'
Text = ''
Parent = 263206

Handle = 721948
Class = 'Edit'
Text = 'C:\Windows'
Parent = 197634

Handle = 328884
Class = 'UniversalSearchBand'
Text = ''
Parent = 197638

Handle = 328880
Class = 'Search Control'
Text = ''
Parent = 328884

Handle = 132290
Class = 'Static'
Text = 'Rechercher'
Parent = 328880

Handle = 1508386
Class = 'Edit'
Text = ''
Parent = 328880

Handle = 1442836
Class = 'Edit'
Text = ''
Parent = 328880

Handle = 263236
Class = 'ToolbarWindow32'
Text = ''
Parent = 328880

Handle = 263232
Class = 'QuickFilterBand'
Text = ''
Parent = 197638

Handle = 263234
Class = 'QueryBuilderBand'
Text = ''
Parent = 197638

Handle = 263226
Class = 'ShellTabWindowClass'
Text = 'Windows'
Parent = 197628

Handle = 1246230
Class = 'DUIViewWndClassName'
Text = ''
Parent = 263226

Handle = 197730
Class = 'DirectUIHWND'
Text = ''
Parent = 1246230

Handle = 263334
Class = 'CtrlNotifySink'
Text = ''
Parent = 197730

Handle = 263336
Class = 'Shell Preview Extension Host'
Text = 'Shell Preview Extension Host'
Parent = 263334

Handle = 197714
Class = 'CtrlNotifySink'
Text = ''
Parent = 197730

Handle = 263252
Class = 'CommonPlacesWrapperWndClass'
Text = 'Wrapper d’hôte des lieux communs'
Parent = 197714

Handle = 197786
Class = 'ToolbarWindow32'
Text = ''
Parent = 263252

Handle = 197732
Class = 'CtrlNotifySink'
Text = ''
Parent = 197730

Handle = 197784
Class = 'NamespaceTreeControl'
Text = 'Contrôle Arborescence d’espace de noms'
Parent = 197732

Handle = 197782
Class = 'Static'
Text = 'Contrôle Arborescence d’espace de noms'
Parent = 197784

Handle = 197708
Class = 'SysTreeView32'
Text = 'Arborescence'
Parent = 197784

Handle = 197724
Class = 'CtrlNotifySink'
Text = ''
Parent = 197730

Handle = 197734
Class = 'SysLink'
Text = ''
Parent = 197724

Handle = 197766
Class = 'CtrlNotifySink'
Text = ''
Parent = 197730

Handle = 197726
Class = 'SHELLDLL_DefView'
Text = 'ShellView'
Parent = 197766

Handle = 197744
Class = 'SysListView32'
Text = 'FolderView'
Parent = 197726

Handle = 197718
Class = 'SysHeader32'
Text = ''
Parent = 197744

Handle = 263222
Class = 'WorkerW'
Text = 'Barre de menus'
Parent = 263226

Handle = 459964
Class = 'ReBarWindow32'
Text = ''
Parent = 263222

Handle = 394418
Class = 'ToolbarWindow32'
Text = ''
Parent = 459964

Handle = 263286
Class = 'WorkerW'
Text = ''
Parent = 263226

Handle = 1311768
Class = 'msctls_statusbar32'
Text = ''
Parent = 263226

Force et sagesse...
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

bon, j'ai l'impression que mon code va trop vite pour Vista ....

alors nouvel essai

ca doit faire ça :
- ouvrir l'explorateur sous c:\
- trouver la fenêtre de l'explorateur
- changer l'adresse en c:\windows
- retirer les bordures de lafenêtre de l'explorateur.

donc dite moi si ca marche, et je veux bien le contenu de la fenête de debug.

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"
      Recherche_BarreAdresse = hwnd
    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
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)]
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

voici ce que cela donne, graphiquement déjà:

Image

puis la fenetre debug:

Code : Tout sélectionner

nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
''
nouvelle fenêtre trouvée
525174
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
459648
'C:\'
>> Exploreur
Force et sagesse...
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

yehaaaa !


Ca marche !

C'était juste ça, Vista est trop lent face à XP .... je regardais le contenu des fenêtres trop vite
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)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

j'ai besoin d'un nouvel essai, j'ai amélioré le code

Alors est-ce que ca marche toujours sous vista ?

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" 
      Recherche_BarreAdresse = hwnd 
    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_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:\", "", #PB_Program_Hide) 
  
  ; 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_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
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)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
''
nouvelle fenêtre trouvée
1115196
Class Edit

Class ComboBox
Class Edit

Class Edit

Barre d'aresse
1049710
'C:\'
>> Exploreur
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ça marche, chouette
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)]
Répondre