Question sur FileSystem

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Question sur FileSystem

Message par Jacobus »

J'ai ce bout de code pour appeler le menu contextuel de Windows. Récupéré sur le forum anglais sous le titre suffisament évocateur: "Add the shell's context menu to your program"

@dayvid : Essayes de te débrouiller avec et creuse toi un peu la citrouille pour ajouter tes fonctions, tu as tout ce qu'il te faut.

Code : Tout sélectionner

Structure CMINVOKECOMMANDINFOEX
  cbSize.l
  fMask.l
  hwnd.i
  lpVerb.i
  lpParameters.i
  lpDirectory.i
  nShow.l
  dwHotKey.l
  hIcon.i
  lpTitle.i
  lpVerbW.i
  lpParametersW.i
  lpDirectoryW.i
  lpTitleW.i
  ptInvoke.POINT
EndStructure

Structure QCMINFO
  hmenu.i
  indexMenu.l
  idCmdFirst.l
  idCmdLast.l
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
    _alignment.l
  CompilerEndIf
*pldMap.l
EndStructure

#GCS_VERBA = 0
#CMF_NORMAL = 0
#CMF_CANRENAME = 16

#DFM_MERGECONTEXTMENU   = 1
#DFM_INVOKECOMMAND      = 2
#DFM_GETDEFSTATICID     = 14
#DFM_CMD_PROPERTIES     = -5

; Win2k and newer only!
;
Prototype CDefFolderMenu_Create2(a, b, c, d, e, f, g, h, i)
Global CDefFolderMenu_Create2.CDefFolderMenu_Create2

#Window = 0
#Menu   = 0
#ExplorerList = 0

; These can be changed to limit the range of menu IDs that the context menu will use
; to avoid conflicts with other menus in the program
;
#FirstShellMenuItem = 0
#LastShellMenuItem  = 9999

Global CustomMenuEntry

; Callback function for the CDefFolderMenu_Create2() call
;
Procedure Callback(*psf.IShellFolder, hwnd, pdtobj.IDataObject, uMsg, wParam, lParam)
  Select uMsg
      
    Case #DFM_MERGECONTEXTMENU
       
      ; Here custom entries can be added to the created menu
      ;
      *qcminfo.QCMINFO = lParam
      If *qcminfo\idCmdLast > *qcminfo\idCmdFirst      
       
        If InsertMenu_(*qcminfo\hmenu, *qcminfo\indexMenu, #MF_BYPOSITION|#MF_STRING, *qcminfo\idCmdFirst, @"--- Custom Menu Entry ---")
          ; Save the ID and tell the caller that one entry was added
          ;
          CustomMenuEntry = *qcminfo\idCmdFirst
          *qcminfo\idCmdFirst + 1
        EndIf
        
      EndIf
      ProcedureReturn #S_OK
    
    Case #DFM_INVOKECOMMAND
    
      ; Here the execution of the commands can be overwritten.
      ; return #S_FALSE to get the default behavior
      ProcedureReturn #S_FALSE
    
    Case #DFM_GETDEFSTATICID
    
      ; return #S_FALSE to get the default handling
      ProcedureReturn #S_FALSE
    
    Default
      ProcedureReturn #E_NOTIMPL
      
  EndSelect
EndProcedure

CoInitialize_(0)

If OpenLibrary(0, "shell32.dll")
  CDefFolderMenu_Create2 = GetFunction(0, "CDefFolderMenu_Create2")
  
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
    ; Win2k only exports this by ordinal, newer versions export by name
    If CDefFolderMenu_Create2 = 0
      CDefFolderMenu_Create2 = GetFunctionEntry(0, 701)
    EndIf
  CompilerEndIf
  
  If CDefFolderMenu_Create2 = 0
    Debug "Error, cannot find CDefFolderMenu_Create2()"
    End
  EndIf
EndIf

ShellMenu.IContextMenu = 0

If OpenWindow(#Window, 0, 0, 500, 500, "ContextMenu test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ExplorerListGadget(#ExplorerList, 10, 10, 480, 480, "C:\", #PB_Explorer_MultiSelect|#PB_Explorer_FullRowSelect|#PB_Explorer_AlwaysShowSelection)

  Repeat
    Event = WaitWindowEvent()
    
    ; Right-click event in the gadget
    ;
    If Event = #PB_Event_Gadget And EventGadget() = #ExplorerList And EventType() = #PB_EventType_RightClick
    
      ; Get the IDL and IShellFolder for the current directory in the gadget
      ;
      If SHGetDesktopFolder_(@Desktop.IShellFolder) = #S_OK
        Debug "got desktop folder"
        
        ParentFolder$ = GetGadgetText(#ExplorerList)               
        If Desktop\ParseDisplayName(WindowID(#Window), #Null, ParentFolder$, #Null, @*ParentIDL, #Null) = #S_OK
          Debug "got parent folder idl"
          
          If Desktop\BindToObject(*ParentIDL, #Null, ?IID_IShellFolder, @Parent.IShellFolder) = #S_OK
            Debug "got parent folder object"
            
            
            ; Get the IDLs for all selected items
            ;
            TotalCount = CountGadgetItems(#ExplorerList)
            ItemCount  = 0
            For i = 0 To TotalCount-1
              If GetGadgetItemState(#ExplorerList, i) & #PB_Explorer_Selected And GetGadgetItemText(#ExplorerList, i, 0) <> ".."
                ItemCount + 1
              EndIf
            Next i
            
            If ItemCount > 0
                          
              Dim *FileIDL(ItemCount-1)
              
              ParsedCount = 0
              For i = 0 To TotalCount-1
                If GetGadgetItemState(#ExplorerList, i) & #PB_Explorer_Selected And GetGadgetItemText(#ExplorerList, i, 0) <> ".."
                  ItemName$ = GetGadgetItemText(#ExplorerList, i, 0)
                  
                  If Parent\ParseDisplayName(WindowID(#Window), #Null, ItemName$, #Null, @*FileIDL(ParsedCount), #Null) = #S_OK
                    ParsedCount + 1
                  EndIf                  
                EndIf
              Next i   
              
              ; Only go to the menu if parsing all items worked correctly
              ;
              If ParsedCount = ItemCount
                Debug "got item idl's"       
                
                ; Free the old menu object
                If ShellMenu
                  ShellMenu\Release()
                  ShellMenu = 0
                EndIf
                
                ; Open the registry keys for shell extensions
                ;
                KeyCount = 1
                Dim KeyStrings.s(KeyCount)
                Dim hKey(KeyCount)
                
                KeyStrings(0) = "*"
;                 KeyStrings(1) = ".txt"
;                 KeyStrings(2) = "txtfile"
                
                KeysOpen = 0
                For i = 0 To KeyCount-1
                  If RegCreateKeyEx_(#HKEY_CLASSES_ROOT, @KeyStrings(i), 0, #Null, 0, #KEY_READ, #Null, @hKey(KeysOpen), #Null) = #ERROR_SUCCESS
                    KeysOpen + 1
                  EndIf
                Next i
                
                ; Create the menu object for our items with the above callback
                ;
                If CDefFolderMenu_Create2(*ParentIDL, WindowID(#Window), ParsedCount, @*FileIDL(), Parent, @Callback(), KeysOpen, @hKey(), @ShellMenu.IContextMenu) = #S_OK
                  Debug "got menu"
                  
                  ; Create a PB popupmenu to put the menu items in
                  ;
                  If CreatePopupMenu(#Menu)
                    Debug "got pb menu"
                   
                    ; Add the Shell menu to our popup menu
                    ; You can specify the range of menu item ids to use here (to not conflict with others from your program)
                    ;                       
                    If ShellMenu\QueryContextMenu(MenuID(#Menu), 0, #FirstShellMenuItem, #LastShellMenuItem, #CMF_NORMAL|#CMF_CANRENAME) >= 0
                      Debug "menu items added"
                    
                      ; Finally display the popup menu
                      ;
                      DisplayPopupMenu(#Menu, WindowID(#Window))
                    EndIf
                  EndIf
                EndIf    
                
                For i = 0 To KeysOpen-1
                  RegCloseKey_(hkey(i))
                Next i
              
              Else
                Debug "error in parsing a selected item"
                
              EndIf
              
              ; Free the item IDLs (as far as they were parsed)
              ;
              For i = 0 To ParsedCount-1 
                CoTaskMemFree_(*FileIDL(i))
              Next i

            EndIf
            
            Parent\Release()
          EndIf
          
          CoTaskMemFree_(*ParentIDL)
        EndIf 
      
        Desktop\Release()
      EndIf
        
    
    ; A menu event from the contextmenu range
    ;
    ElseIf Event = #PB_Event_Menu And ShellMenu And EventMenu() >= #FirstShellMenuItem And EventMenu() <= #LastShellMenuItem
    
      If EventMenu() = CustomMenuEntry
        ; Its our custom menu item
        Debug "--- custom menu item selected ---"
      
      Else
        ; its one of the shell items
        
        Debug "handling event: " + Str(EventMenu())

        Command$ = Space(1000)
        If ShellMenu\GetCommandString(EventMenu(), #GCS_VERBA, #Null, @Command$, 1000) = #S_OK
          Debug "Commmand: " + Command$      
          
          ; Some of these commands can be directly passed to ShellExecute_() for example         
        EndIf
      
        ; Let the menu object execute this command
        ;
        info.CMINVOKECOMMANDINFOEX\cbSize = SizeOf(CMINVOKECOMMANDINFOEX)
        info\fMask  = 0
        info\hwnd   = WindowID(#Window)
        info\lpVerb = EventMenu()
        info\nShow  = #SW_SHOWNORMAL
        
        err = ShellMenu\InvokeCommand(@info)
        If err = #S_OK
          Debug "command executed"
        Else
          Debug "command could not be executed. error = "+Str(err)
        EndIf
      EndIf
    
    EndIf    
      
    
  Until Event = #PB_Event_CloseWindow
EndIf

CoUninitialize_()

End


DataSection

  IID_IShellFolder: ; {000214E6-0000-0000-C000-000000000046}
    Data.l $000214E6
    Data.w $0000, $0000
    Data.b $C0, $00, $00, $00, $00, $00, $00, $46

EndDataSection
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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Question sur FileSystem

Message par Backup »

ha oui le shell32.dll , bien sur :)
Merci :)
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Question sur FileSystem

Message par dayvid »

Merci beaucoup Jacobus :D

Edit: Ail ail ail, la vache je m'en mort les doigts :|
Je vais voir si ya pas d’autres exemple ailleurs car là j’y comprend rien
Et en plus ya pas tous je croix :oops:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Question sur FileSystem

Message par Jacobus »

Image
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.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Question sur FileSystem

Message par dayvid »

Non aller sérieux quoi, j'ai beau me casser les dents sur la chose je ne comprends rien :?

Faudrait pas me prendre pour ce que je ne suis pas hein quand même lol

C'est superbe que tu m'es donner ce code et je t'en remercie Jacobus
mais là je n'ai absolument pas les capacité à pouvoir
l'améliorer ou le modifier, c'est bien trop pointu pour moi

En plus ya pleins de truc qui cloche dans ce code

Image

Par exemple le renomage ne marche pas sur les fichier ou dossier, le « ouvrir avec » est en gras, bizarre 8O
ya pas les même éléments dans le menue si je le fait directement sur un dossier ou un fichier sur windows (sans passer par le programme)

Enfin bref je vais continuer tous seule mais sa m’étonnerais beaucoup que j’arrive à quoi que ce soit :cry:

Ya même pas de note concrète, a quoi sert telle fonction etc.
J’ai bien traduit les phrases en anglais et me voici pourtant pas plus avancer pour autant

Bref si j’ai besoin je reviens demander de l’aide, pour l’heur je vais faire mes expériences :mrgreen:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Question sur FileSystem

Message par case »

j' hallucine... 8O
allez moi je jettes l'éponge ...

(edit) automodération...
Dernière modification par case le lun. 15/nov./2010 0:37, modifié 1 fois.
ImageImage
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Question sur FileSystem

Message par dayvid »

Bon voilà, j'ai réussi à intégrer le code à mon programme
mais ça n'a pas été sans mal croyez moi mais j'y suis arriver :)

Code : Tout sélectionner

Structure CMINVOKECOMMANDINFOEX
  cbSize.l
  fMask.l
  hwnd.i
  lpVerb.i
  lpParameters.i
  lpDirectory.i
  nShow.l
  dwHotKey.l
  hIcon.i
  lpTitle.i
  lpVerbW.i
  lpParametersW.i
  lpDirectoryW.i
  lpTitleW.i
  ptInvoke.POINT
EndStructure

Structure QCMINFO
  hmenu.i
  indexMenu.l
  idCmdFirst.l
  idCmdLast.l
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
    _alignment.l
  CompilerEndIf
*pldMap.l
EndStructure

#GCS_VERBA = 0
#CMF_NORMAL = 0
#CMF_CANRENAME = 16

#DFM_MERGECONTEXTMENU   = 1
#DFM_INVOKECOMMAND      = 2
#DFM_GETDEFSTATICID     = 14
#DFM_CMD_PROPERTIES     = -5

#Menu   = 0

#FirstShellMenuItem = 0
#LastShellMenuItem  = 9999

Prototype CDefFolderMenu_Create2(a, b, c, d, e, f, g, h, i)

Global CDefFolderMenu_Create2.CDefFolderMenu_Create2
Global CustomMenuEntry

Global Repertoire$ = "Base de donnée de fichiers"

Recherche_parametre_Date_creation_fichier = 0
Recherche_parametre_Date_modiffication_fichier = 0
Recherche_parametre_Date_dernier_accer_fichier = 0
Recherche_parametre_Taille_fichier = 0
Recherche_parametre_Attributs_fichier = 0

Fichier_a_rechercher$ = "a"
Respecter_la_case$ = "non"
Date_creation_fichier$ = ""
Date_modiffication_fichier$ = ""
Date_dernier_accer_fichier$ = ""
Taille_fichier$ = ""
Attributs_fichier$ = ""
Type_fichier$ = ""
Date_creation_fichier = 0
Date_modiffication_fichier = 0
Date_dernier_accer_fichier = 0
Taille_fichier = 0
Attributs_fichier = 0

Global Repertoire
Global Parametre_fichier$
Global Second
Global Minute
Global Heur
Global Jour_semaine
Global Jour_mois
Global Mois
Global Annee
Global Jour_semaine$
Global Mois$
Global Heur$, Minute$, Second$

Global NewList liste_fichier.s()
Global NewList Indexation_fichiers.s()

Enumeration
  #Window_0
  #BarreEtat
  #Button_2
  #ExplorerList_6
  #Button_7
  #Text_8
  #Text_9
  #Frame3D_10
  #Window_1
  #String_nom_fichier_rechercher
  #Text_1
  #CheckBox_date_creation
  #CheckBox_date_modiffication
  #CheckBox_date_dernier_accer
  #CheckBox_taille_fichier
  #CheckBox_attributs_fichier
  #CheckBox_type_fichier
  #ComboBox_est_nest_pas_date_de_creation
  #ComboBox_opperateur_date_creation
  #ComboBox_est_nest_pas_date_de_modiffication
  #ComboBox_est_nest_pas_date_dernier_accer
  #ComboBox_est_nest_pas_taille_fichier
  #ComboBox_attribus_fichiers
  #ComboBox_date_creation_jour
  #ComboBox_date_creation_annee
  #ComboBox_date_modiffication_mois
  #ComboBox_date_creation_mois
  #ComboBox_opperateur_date_modiffication
  #ComboBox_opperateur_date_dernier_accer
  #ComboBox_date_modiffication_jour
  #ComboBox_date_dernier_accer_jour
  #ComboBox_date_dernier_accer_mois
  #ComboBox_date_modiffication_annee
  #ComboBox_date_dernier_accer_annee
  #ComboBox_opperateur_taille_fichier
  #Button_rechercher
  #Button_annuler
  #ComboBox_taille_fichier
  #ComboBox_delimiteur_taille_fichier
  #ComboBox_est_nest_pas_attributs_fichier
  #ComboBox_est_nest_pas_type_fichier
  #ComboBox_type_fichier
EndEnumeration

Procedure Callback(*psf.IShellFolder, hwnd, pdtobj.IDataObject, uMsg, wParam, lParam)
  Select uMsg
      
;     Case #DFM_MERGECONTEXTMENU
;        
;       ; Des entrées Ici personnalisées peuvent être ajoutées au menu créé
;       ;
;       *qcminfo.QCMINFO = lParam
;       If *qcminfo\idCmdLast > *qcminfo\idCmdFirst      
;        
;         If InsertMenu_(*qcminfo\hmenu, *qcminfo\indexMenu, #MF_BYPOSITION|#MF_STRING, *qcminfo\idCmdFirst, @"--- Custom Menu Entry ---")
;           ; Sauver l'ID et dire à l'interlocuteur qu'une entrée a été ajoutée
;           ;
;           CustomMenuEntry = *qcminfo\idCmdFirst
;           *qcminfo\idCmdFirst + 1
;         EndIf
;         
;       EndIf
;       ProcedureReturn #S_OK
;     
    Case #DFM_INVOKECOMMAND
    
      ; Ici l'exécution des commandes peut être recopiée.
      ; Retourner #S_FALSE Pour obtenir le comportement part défaut
      ProcedureReturn #S_FALSE
    
    Case #DFM_GETDEFSTATICID
    
      ; Retourner #S_FALSE Pour obtenir le traitement part défaut
      ProcedureReturn #S_FALSE
    
    Default
      ProcedureReturn #E_NOTIMPL
      
  EndSelect
EndProcedure

CoInitialize_(0)

If OpenLibrary(0, "shell32.dll")
  CDefFolderMenu_Create2 = GetFunction(0, "CDefFolderMenu_Create2")
  
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
    ; Win2k seulement exporte cela par ordinal, l'exportation de versions plus récente de nom
    If CDefFolderMenu_Create2 = 0
      CDefFolderMenu_Create2 = GetFunctionEntry(0, 701)
    EndIf
  CompilerEndIf
  
  If CDefFolderMenu_Create2 = 0
    Debug "Error, cannot find CDefFolderMenu_Create2()"
    End
  EndIf
Else
  MessageRequester("Erreur", "Ne peut pas ouvrir la library shell32.dll", 16)
EndIf

Procedure Interface_rechercher_un_fichier()
  If OpenWindow(#Window_0, 556, 397, 553, 221, "Rechercher un fichiers dans la base de donnée", #PB_Window_TitleBar|#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
    StringGadget(#String_nom_fichier_rechercher, 15, 30, 525, 20, "")
    TextGadget(#Text_1, 15, 10, 525, 20, "Entrez le nom du fichier a rechercher:", #PB_Text_Center)
    CheckBoxGadget(#CheckBox_date_creation, 15, 65, 100, 20, "Date de création:")
    CheckBoxGadget(#CheckBox_date_modiffication, 15, 90, 120, 20, "Date de modiffication:")
    CheckBoxGadget(#CheckBox_date_dernier_accer, 15, 115, 125, 20, "Date du dernier accer:")
    CheckBoxGadget(#CheckBox_taille_fichier, 15, 165, 95, 20, "Taille du fichier:")
    CheckBoxGadget(#CheckBox_attributs_fichier, 15, 190, 110, 20, "Attributs du fichier:")
    CheckBoxGadget(#CheckBox_type_fichier, 15, 140, 90, 20, "Type du fichier:")
    ComboBoxGadget(#ComboBox_est_nest_pas_date_de_creation, 150, 65, 85, 20)
    ComboBoxGadget(#ComboBox_opperateur_date_creation, 240, 65, 145, 20)
    ComboBoxGadget(#ComboBox_est_nest_pas_date_de_modiffication, 150, 90, 85, 20)
    ComboBoxGadget(#ComboBox_est_nest_pas_date_dernier_accer, 150, 115, 85, 20)
    ComboBoxGadget(#ComboBox_est_nest_pas_taille_fichier, 150, 165, 85, 20)
    ComboBoxGadget(#ComboBox_attribus_fichiers, 240, 190, 145, 20)
    ComboBoxGadget(#ComboBox_date_creation_jour, 390, 65, 40, 20)
    ComboBoxGadget(#ComboBox_date_creation_annee, 480, 65, 60, 20)
    ComboBoxGadget(#ComboBox_date_modiffication_mois, 435, 90, 40, 20)
    ComboBoxGadget(#ComboBox_date_creation_mois, 435, 65, 40, 20)
    ComboBoxGadget(#ComboBox_opperateur_date_modiffication, 240, 90, 145, 20)
    ComboBoxGadget(#ComboBox_opperateur_date_dernier_accer, 240, 115, 145, 20)
    ComboBoxGadget(#ComboBox_date_modiffication_jour, 390, 90, 40, 20)
    ComboBoxGadget(#ComboBox_date_dernier_accer_jour, 390, 115, 40, 20)
    ComboBoxGadget(#ComboBox_date_dernier_accer_mois, 435, 115, 40, 20)
    ComboBoxGadget(#ComboBox_date_modiffication_annee, 480, 90, 60, 20)
    ComboBoxGadget(#ComboBox_date_dernier_accer_annee, 480, 115, 60, 20)
    ButtonGadget(#Button_rechercher, 390, 190, 85, 20, "Rechercher")
    ButtonGadget(#Button_annuler, 480, 190, 60, 20, "Annuler")
    ComboBoxGadget(#ComboBox_opperateur_taille_fichier, 240, 165, 145, 20)
    ComboBoxGadget(#ComboBox_taille_fichier, 390, 165, 85, 20)
    ComboBoxGadget(#ComboBox_delimiteur_taille_fichier, 480, 165, 60, 20)
    ComboBoxGadget(#ComboBox_est_nest_pas_attributs_fichier, 150, 190, 85, 20)
    ComboBoxGadget(#ComboBox_est_nest_pas_type_fichier, 150, 140, 85, 20)
    ComboBoxGadget(#ComboBox_type_fichier, 240, 140, 300, 20)
    
    DisableGadget(#ComboBox_est_nest_pas_date_de_creation, 1)
    DisableGadget(#ComboBox_opperateur_date_creation, 1)
    DisableGadget(#ComboBox_date_creation_jour, 1)
    DisableGadget(#ComboBox_date_creation_mois, 1)
    DisableGadget(#ComboBox_date_creation_annee, 1)
    
    DisableGadget(#ComboBox_est_nest_pas_date_de_modiffication, 1)
    DisableGadget(#ComboBox_opperateur_date_modiffication, 1)
    DisableGadget(#ComboBox_date_modiffication_jour, 1)
    DisableGadget(#ComboBox_date_modiffication_mois, 1)
    DisableGadget(#ComboBox_date_modiffication_annee, 1)
    
    DisableGadget(#ComboBox_est_nest_pas_date_dernier_accer, 1)
    DisableGadget(#ComboBox_opperateur_date_dernier_accer, 1)
    DisableGadget(#ComboBox_date_dernier_accer_jour, 1)
    DisableGadget(#ComboBox_date_dernier_accer_mois, 1)
    DisableGadget(#ComboBox_date_dernier_accer_annee, 1)
    
    DisableGadget(#ComboBox_est_nest_pas_taille_fichier, 1)
    DisableGadget(#ComboBox_taille_fichier, 1)
    DisableGadget(#ComboBox_opperateur_taille_fichier, 1)
    DisableGadget(#ComboBox_delimiteur_taille_fichier, 1)
    
    DisableGadget(#ComboBox_attribus_fichiers, 1)
    DisableGadget(#ComboBox_est_nest_pas_attributs_fichier, 1)
    
    DisableGadget(#ComboBox_est_nest_pas_type_fichier, 1)
    DisableGadget(#ComboBox_type_fichier, 1)
    
    AddGadgetItem(#ComboBox_est_nest_pas_date_de_creation, -1, "Est")
    AddGadgetItem(#ComboBox_est_nest_pas_date_de_creation, -1, "N'est pas")
    AddGadgetItem(#ComboBox_opperateur_date_creation, -1, "Egale à")
    AddGadgetItem(#ComboBox_opperateur_date_creation, -1, "Supérieur à")
    AddGadgetItem(#ComboBox_opperateur_date_creation, -1, "Inferieur à")
    AddGadgetItem(#ComboBox_opperateur_date_creation, -1, "Superieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_date_creation, -1, "Inferieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_date_creation, -1, "Inferieur ou égale à")
    For ComboBox_date_creation_jour = 1 To 31
      AddGadgetItem(#ComboBox_date_creation_jour, -1, Str(ComboBox_date_creation_jour))
    Next
    For ComboBox_date_creation_mois = 1 To 12
      AddGadgetItem(#ComboBox_date_creation_mois, -1, Str(ComboBox_date_creation_mois))
    Next
    For ComboBox_date_creation_annee = 1970 To 2038
      AddGadgetItem(#ComboBox_date_creation_annee, -1, Str(ComboBox_date_creation_annee))
    Next
    
    AddGadgetItem(#ComboBox_est_nest_pas_date_dernier_accer, -1, "Est")
    AddGadgetItem(#ComboBox_est_nest_pas_date_dernier_accer, -1, "N'est pas")
    AddGadgetItem(#ComboBox_opperateur_date_dernier_accer, -1, "Egale à")
    AddGadgetItem(#ComboBox_opperateur_date_dernier_accer, -1, "Supérieur à")
    AddGadgetItem(#ComboBox_opperateur_date_dernier_accer, -1, "Inferieur à")
    AddGadgetItem(#ComboBox_opperateur_date_dernier_accer, -1, "Superieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_date_dernier_accer, -1, "Inferieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_date_dernier_accer, -1, "Inferieur ou égale à")
    For ComboBox_date_dernier_accer_jour = 1 To 31
      AddGadgetItem(#ComboBox_date_dernier_accer_jour, -1, Str(ComboBox_date_dernier_accer_jour))
    Next
    For ComboBox_date_dernier_accer_mois = 1 To 12
      AddGadgetItem(#ComboBox_date_dernier_accer_mois, -1, Str(ComboBox_date_dernier_accer_mois))
    Next
    For ComboBox_date_dernier_accer_annee = 1970 To 2038
      AddGadgetItem(#ComboBox_date_dernier_accer_annee, -1, Str(ComboBox_date_dernier_accer_annee))
    Next
    
    AddGadgetItem(#ComboBox_type_fichier, -1, "3ds")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ace")
    AddGadgetItem(#ComboBox_type_fichier, -1, "aif")
    AddGadgetItem(#ComboBox_type_fichier, -1, "aifc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "aiff")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ani")
    AddGadgetItem(#ComboBox_type_fichier, -1, "arc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "arj")
    AddGadgetItem(#ComboBox_type_fichier, -1, "asp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "avi")
    AddGadgetItem(#ComboBox_type_fichier, -1, "bak")
    AddGadgetItem(#ComboBox_type_fichier, -1, "bat")
    AddGadgetItem(#ComboBox_type_fichier, -1, "bin")
    AddGadgetItem(#ComboBox_type_fichier, -1, "bmp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "c")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cab")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cda")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cdf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cdr")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cfm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cgi")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cgm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "chk")
    AddGadgetItem(#ComboBox_type_fichier, -1, "class")
    AddGadgetItem(#ComboBox_type_fichier, -1, "com")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cpe")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cpl")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cpp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "css")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cue")
    AddGadgetItem(#ComboBox_type_fichier, -1, "cur")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dat")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dbf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dib")
    AddGadgetItem(#ComboBox_type_fichier, -1, "divx")
    AddGadgetItem(#ComboBox_type_fichier, -1, "diz")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dll")
    AddGadgetItem(#ComboBox_type_fichier, -1, "doc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dos")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dot")
    AddGadgetItem(#ComboBox_type_fichier, -1, "drv")
    AddGadgetItem(#ComboBox_type_fichier, -1, "drw")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dvit")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dwg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "dxf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ecd")
    AddGadgetItem(#ComboBox_type_fichier, -1, "eps")
    AddGadgetItem(#ComboBox_type_fichier, -1, "eqn")
    AddGadgetItem(#ComboBox_type_fichier, -1, "exe")
    AddGadgetItem(#ComboBox_type_fichier, -1, "fif")
    AddGadgetItem(#ComboBox_type_fichier, -1, "flc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "fli")
    AddGadgetItem(#ComboBox_type_fichier, -1, "fon")
    AddGadgetItem(#ComboBox_type_fichier, -1, "for")
    AddGadgetItem(#ComboBox_type_fichier, -1, "fot")
    AddGadgetItem(#ComboBox_type_fichier, -1, "gdg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "gif")
    AddGadgetItem(#ComboBox_type_fichier, -1, "grp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "gz")
    AddGadgetItem(#ComboBox_type_fichier, -1, "h")
    AddGadgetItem(#ComboBox_type_fichier, -1, "hlp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "htm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "html")
    AddGadgetItem(#ComboBox_type_fichier, -1, "icc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "icm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ico")
    AddGadgetItem(#ComboBox_type_fichier, -1, "idf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "iff")
    AddGadgetItem(#ComboBox_type_fichier, -1, "iges")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ilbm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "inf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ini")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ink")
    AddGadgetItem(#ComboBox_type_fichier, -1, "jar")
    AddGadgetItem(#ComboBox_type_fichier, -1, "jav")
    AddGadgetItem(#ComboBox_type_fichier, -1, "java")
    AddGadgetItem(#ComboBox_type_fichier, -1, "jpeg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "jpg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "kgb")
    AddGadgetItem(#ComboBox_type_fichier, -1, "lbm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "lha")
    AddGadgetItem(#ComboBox_type_fichier, -1, "lib")
    AddGadgetItem(#ComboBox_type_fichier, -1, "lnk")
    AddGadgetItem(#ComboBox_type_fichier, -1, "log")
    AddGadgetItem(#ComboBox_type_fichier, -1, "lzh")
    AddGadgetItem(#ComboBox_type_fichier, -1, "m")
    AddGadgetItem(#ComboBox_type_fichier, -1, "m3u")
    AddGadgetItem(#ComboBox_type_fichier, -1, "max")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mid")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mkv")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mod")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mov")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mp2")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mp3")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mp4")
    AddGadgetItem(#ComboBox_type_fichier, -1, "mpg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "msi")
    AddGadgetItem(#ComboBox_type_fichier, -1, "n64")
    AddGadgetItem(#ComboBox_type_fichier, -1, "nfo")
    AddGadgetItem(#ComboBox_type_fichier, -1, "nrg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ocx")
    AddGadgetItem(#ComboBox_type_fichier, -1, "odt")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ogg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "old")
    AddGadgetItem(#ComboBox_type_fichier, -1, "org")
    AddGadgetItem(#ComboBox_type_fichier, -1, "p")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pb")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pbf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pcd")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pct")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pcx")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pdf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "php")
    AddGadgetItem(#ComboBox_type_fichier, -1, "php3")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pic")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pif")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pl")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pls")
    AddGadgetItem(#ComboBox_type_fichier, -1, "png")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ppj")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pps")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ppt")
    AddGadgetItem(#ComboBox_type_fichier, -1, "prj")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ps")
    AddGadgetItem(#ComboBox_type_fichier, -1, "psd")
    AddGadgetItem(#ComboBox_type_fichier, -1, "psp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pub")
    AddGadgetItem(#ComboBox_type_fichier, -1, "pwl")
    AddGadgetItem(#ComboBox_type_fichier, -1, "qt")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ra")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ram")
    AddGadgetItem(#ComboBox_type_fichier, -1, "rar")
    AddGadgetItem(#ComboBox_type_fichier, -1, "reg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "rtf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "scr")
    AddGadgetItem(#ComboBox_type_fichier, -1, "snd")
    AddGadgetItem(#ComboBox_type_fichier, -1, "sql")
    AddGadgetItem(#ComboBox_type_fichier, -1, "swf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "swp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "sys")
    AddGadgetItem(#ComboBox_type_fichier, -1, "tar")
    AddGadgetItem(#ComboBox_type_fichier, -1, "tga")
    AddGadgetItem(#ComboBox_type_fichier, -1, "tgz")
    AddGadgetItem(#ComboBox_type_fichier, -1, "theme")
    AddGadgetItem(#ComboBox_type_fichier, -1, "tif")
    AddGadgetItem(#ComboBox_type_fichier, -1, "tiff")
    AddGadgetItem(#ComboBox_type_fichier, -1, "tmp")
    AddGadgetItem(#ComboBox_type_fichier, -1, "torrent")
    AddGadgetItem(#ComboBox_type_fichier, -1, "ttf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "txt")
    AddGadgetItem(#ComboBox_type_fichier, -1, "u")
    AddGadgetItem(#ComboBox_type_fichier, -1, "uha")
    AddGadgetItem(#ComboBox_type_fichier, -1, "url")
    AddGadgetItem(#ComboBox_type_fichier, -1, "utx")
    AddGadgetItem(#ComboBox_type_fichier, -1, "uu")
    AddGadgetItem(#ComboBox_type_fichier, -1, "uue")
    AddGadgetItem(#ComboBox_type_fichier, -1, "vbs")
    AddGadgetItem(#ComboBox_type_fichier, -1, "vivo")
    AddGadgetItem(#ComboBox_type_fichier, -1, "voc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "vtc")
    AddGadgetItem(#ComboBox_type_fichier, -1, "vue")
    AddGadgetItem(#ComboBox_type_fichier, -1, "vxd")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wav")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wiz")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wma")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wmf")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wmv")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wpg")
    AddGadgetItem(#ComboBox_type_fichier, -1, "wri")
    AddGadgetItem(#ComboBox_type_fichier, -1, "xi")
    AddGadgetItem(#ComboBox_type_fichier, -1, "xls")
    AddGadgetItem(#ComboBox_type_fichier, -1, "xm")
    AddGadgetItem(#ComboBox_type_fichier, -1, "xmi")
    AddGadgetItem(#ComboBox_type_fichier, -1, "xml")
    AddGadgetItem(#ComboBox_type_fichier, -1, "zip")
    AddGadgetItem(#ComboBox_type_fichier, -1, "zoo")
    
    SetGadgetState(#ComboBox_type_fichier, 149)
    
    AddGadgetItem(#ComboBox_est_nest_pas_date_de_modiffication, -1, "Est")
    AddGadgetItem(#ComboBox_est_nest_pas_date_de_modiffication, -1, "N'est pas")
    AddGadgetItem(#ComboBox_opperateur_date_modiffication, -1, "Egale à")
    AddGadgetItem(#ComboBox_opperateur_date_modiffication, -1, "Supérieur à")
    AddGadgetItem(#ComboBox_opperateur_date_modiffication, -1, "Inferieur à")
    AddGadgetItem(#ComboBox_opperateur_date_modiffication, -1, "Superieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_date_modiffication, -1, "Inferieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_date_modiffication, -1, "Inferieur ou égale à")
    For ComboBox_date_modiffication_jour = 1 To 31
      AddGadgetItem(#ComboBox_date_modiffication_jour, -1, Str(ComboBox_date_modiffication_jour))
    Next
    For ComboBox_date_modiffication_mois = 1 To 12
      AddGadgetItem(#ComboBox_date_modiffication_mois, -1, Str(ComboBox_date_modiffication_mois))
    Next
    For ComboBox_date_modiffication_annee = 1970 To 2038
      AddGadgetItem(#ComboBox_date_modiffication_annee, -1, Str(ComboBox_date_modiffication_annee))
    Next
    
    AddGadgetItem(#ComboBox_est_nest_pas_taille_fichier, -1, "Est")
    AddGadgetItem(#ComboBox_est_nest_pas_taille_fichier, -1, "N'est pas")
    AddGadgetItem(#ComboBox_opperateur_taille_fichier, -1, "Egale à")
    AddGadgetItem(#ComboBox_opperateur_taille_fichier, -1, "Supérieur à")
    AddGadgetItem(#ComboBox_opperateur_taille_fichier, -1, "Inferieur à")
    AddGadgetItem(#ComboBox_opperateur_taille_fichier, -1, "Superieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_taille_fichier, -1, "Inferieur ou égale à")
    AddGadgetItem(#ComboBox_opperateur_taille_fichier, -1, "Inferieur ou égale à")
    For ComboBox_taille_fichier = 1 To 1000
      AddGadgetItem(#ComboBox_taille_fichier, -1, Str(ComboBox_taille_fichier))
    Next
    AddGadgetItem(#ComboBox_delimiteur_taille_fichier, -1, "Octets")
    AddGadgetItem(#ComboBox_delimiteur_taille_fichier, -1, "Ko")
    AddGadgetItem(#ComboBox_delimiteur_taille_fichier, -1, "Mo")
    AddGadgetItem(#ComboBox_delimiteur_taille_fichier, -1, "Go")
    AddGadgetItem(#ComboBox_delimiteur_taille_fichier, -1, "To")
    AddGadgetItem(#ComboBox_delimiteur_taille_fichier, -1, "Po")
    
    AddGadgetItem(#ComboBox_est_nest_pas_type_fichier, -1, "Est")
    AddGadgetItem(#ComboBox_est_nest_pas_type_fichier, -1, "N'est pas")
    
    AddGadgetItem(#ComboBox_est_nest_pas_attributs_fichier, -1, "Est")
    AddGadgetItem(#ComboBox_est_nest_pas_attributs_fichier, -1, "N'est pas")
    AddGadgetItem(#ComboBox_attribus_fichiers, -1, "Normal")
    AddGadgetItem(#ComboBox_attribus_fichiers, -1, "Caché")
    AddGadgetItem(#ComboBox_attribus_fichiers, -1, "Archivé")
    AddGadgetItem(#ComboBox_attribus_fichiers, -1, "Compressé")
    AddGadgetItem(#ComboBox_attribus_fichiers, -1, "Lecture seule")
    AddGadgetItem(#ComboBox_attribus_fichiers, -1, "Système")
    
    Jour_actuelle = Day(Date()) - 1
    Mois_actuelle = Month(Date()) - 1
    Annee_actuelle = Year(Date())
    
    For Position_combo_Annee_actuelle = 0 To 67
      If GetGadgetItemText(#ComboBox_date_creation_annee, Position_combo_Annee_actuelle) = Str(Annee_actuelle)
        Annee_actuelle = Position_combo_Annee_actuelle
      EndIf
    Next
    
    SetGadgetState(#ComboBox_est_nest_pas_date_de_creation, 0)
    SetGadgetState(#ComboBox_opperateur_date_creation, 0)
    SetGadgetState(#ComboBox_est_nest_pas_date_dernier_accer, 0)
    SetGadgetState(#ComboBox_opperateur_date_dernier_accer, 0)
    SetGadgetState(#ComboBox_est_nest_pas_date_de_modiffication, 0)
    SetGadgetState(#ComboBox_opperateur_date_modiffication, 0)
    SetGadgetState(#ComboBox_date_creation_jour, Jour_actuelle)
    SetGadgetState(#ComboBox_date_creation_mois, Mois_actuelle)
    SetGadgetState(#ComboBox_date_creation_annee, Annee_actuelle)
    SetGadgetState(#ComboBox_date_dernier_accer_jour, Jour_actuelle)
    SetGadgetState(#ComboBox_date_dernier_accer_mois, Mois_actuelle)
    SetGadgetState(#ComboBox_date_dernier_accer_annee, Annee_actuelle)
    SetGadgetState(#ComboBox_date_modiffication_jour, Jour_actuelle)
    SetGadgetState(#ComboBox_date_modiffication_mois, Mois_actuelle)
    SetGadgetState(#ComboBox_date_modiffication_annee, Annee_actuelle)
    SetGadgetState(#ComboBox_est_nest_pas_type_fichier, 0)
    SetGadgetState(#ComboBox_est_nest_pas_attributs_fichier, 0)
    SetGadgetState(#ComboBox_attribus_fichiers, 0)
    SetGadgetState(#ComboBox_est_nest_pas_taille_fichier, 0)
    SetGadgetState(#ComboBox_opperateur_taille_fichier, 0)
    SetGadgetState(#ComboBox_delimiteur_taille_fichier, 0)
    SetGadgetState(#ComboBox_taille_fichier, 0)
    
  EndIf
  
  Repeat
    
    Sauvegarde_Nom_du_fichier_a_chercher$ = Nom_du_fichier_a_chercher$
    
    Nom_du_fichier_a_chercher$ = GetGadgetText(#String_nom_fichier_rechercher)
    
    If sauvegarde_Nom_du_fichier_a_chercher$ <> Nom_du_fichier_a_chercher$ And Nom_du_fichier_a_chercher$ <> ""
      If Nom_du_fichier_a_chercher$ > ""
        If CheckFilename(Nom_du_fichier_a_chercher$)
          ; tous va bien
        Else
          MessageRequester("Erreur de nom de fichier", "Ce nom de fichier est invalide !", 16)
        EndIf
      EndIf
      
      position_extraction = Len(Nom_du_fichier_a_chercher$) + 1
      
      Repeat
        position_extraction - 1
        Caractere$ = Mid(Nom_du_fichier_a_chercher$, position_extraction, 1)
        If Caractere$ = "." Or position_extraction = 0
          Break
        EndIf
      ForEver
      
      If Caractere$ = "."
        Extantion_du_fichier$ = Mid(Nom_du_fichier_a_chercher$, position_extraction + 1)
        For Position_combo_extantion_fichier = 0 To 176
          If GetGadgetItemText(#ComboBox_type_fichier, Position_combo_extantion_fichier) = Extantion_du_fichier$
            SetGadgetState(#ComboBox_type_fichier, Position_combo_extantion_fichier)
          EndIf
        Next
      EndIf
    ElseIf Nom_du_fichier_a_chercher$ = ""
      Nom_du_fichier_a_chercher$ = GetGadgetText(#String_nom_fichier_rechercher)
      Sauvegarde_Nom_du_fichier_a_chercher$ = Nom_du_fichier_a_chercher$
    EndIf
    
    Event = WaitWindowEvent()
    Select Event
        
      Case #PB_Event_Gadget
        EventGadget = EventGadget()
        EventType = EventType()
        
        If EventGadget = #String_nom_fichier_rechercher
          
        ElseIf EventGadget = #Text_1
          
        ElseIf EventGadget = #CheckBox_date_creation
          Etas_CheckBox_date_creation = GetGadgetState(#CheckBox_date_creation)
          If Etas_CheckBox_date_creation = 1
            DisableGadget(#ComboBox_est_nest_pas_date_de_creation, 0)
            DisableGadget(#ComboBox_opperateur_date_creation, 0)
            DisableGadget(#ComboBox_date_creation_jour, 0)
            DisableGadget(#ComboBox_date_creation_annee, 0)
            DisableGadget(#ComboBox_date_creation_mois, 0)
          Else
            DisableGadget(#ComboBox_est_nest_pas_date_de_creation, 1)
            DisableGadget(#ComboBox_opperateur_date_creation, 1)
            DisableGadget(#ComboBox_date_creation_jour, 1)
            DisableGadget(#ComboBox_date_creation_annee, 1)
            DisableGadget(#ComboBox_date_creation_mois, 1)
          EndIf
          
        ElseIf EventGadget = #CheckBox_date_modiffication
          Etas_CheckBox_date_modiffication = GetGadgetState(#CheckBox_date_modiffication)
          If Etas_CheckBox_date_modiffication = 1
            DisableGadget(#ComboBox_est_nest_pas_date_de_modiffication, 0)
            DisableGadget(#ComboBox_date_modiffication_jour, 0)
            DisableGadget(#ComboBox_date_modiffication_mois, 0)
            DisableGadget(#ComboBox_date_modiffication_annee, 0)
            DisableGadget(#ComboBox_opperateur_date_modiffication, 0)
          Else
            DisableGadget(#ComboBox_est_nest_pas_date_de_modiffication, 1)
            DisableGadget(#ComboBox_date_modiffication_jour, 1)
            DisableGadget(#ComboBox_date_modiffication_mois, 1)
            DisableGadget(#ComboBox_date_modiffication_annee, 1)
            DisableGadget(#ComboBox_opperateur_date_modiffication, 1)
          EndIf
          
        ElseIf EventGadget = #CheckBox_date_dernier_accer
          Etas_CheckBox_date_dernier_accer = GetGadgetState(#CheckBox_date_dernier_accer)
          If Etas_CheckBox_date_dernier_accer = 1
            DisableGadget(#ComboBox_est_nest_pas_date_dernier_accer, 0)
            DisableGadget(#ComboBox_opperateur_date_dernier_accer, 0)
            DisableGadget(#ComboBox_date_dernier_accer_jour, 0)
            DisableGadget(#ComboBox_date_dernier_accer_mois, 0)
            DisableGadget(#ComboBox_date_dernier_accer_annee, 0)
          Else
            DisableGadget(#ComboBox_est_nest_pas_date_dernier_accer, 1)
            DisableGadget(#ComboBox_opperateur_date_dernier_accer, 1)
            DisableGadget(#ComboBox_date_dernier_accer_jour, 1)
            DisableGadget(#ComboBox_date_dernier_accer_mois, 1)
            DisableGadget(#ComboBox_date_dernier_accer_annee, 1)
          EndIf
          
        ElseIf EventGadget = #CheckBox_taille_fichier
          Etas_CheckBox_taille_fichier = GetGadgetState(#CheckBox_taille_fichier)
          If Etas_CheckBox_taille_fichier = 1
            DisableGadget(#ComboBox_est_nest_pas_taille_fichier, 0)
            DisableGadget(#ComboBox_taille_fichier, 0)
            DisableGadget(#ComboBox_opperateur_taille_fichier, 0)
            DisableGadget(#ComboBox_delimiteur_taille_fichier, 0)
          Else
            DisableGadget(#ComboBox_est_nest_pas_taille_fichier, 1)
            DisableGadget(#ComboBox_taille_fichier, 1)
            DisableGadget(#ComboBox_opperateur_taille_fichier, 1)
            DisableGadget(#ComboBox_delimiteur_taille_fichier, 1)
          EndIf
          
        ElseIf EventGadget = #CheckBox_attributs_fichier
          Etas_CheckBox_attributs_fichier = GetGadgetState(#CheckBox_attributs_fichier)
          If Etas_CheckBox_attributs_fichier = 1
            DisableGadget(#ComboBox_attribus_fichiers, 0)
            DisableGadget(#ComboBox_est_nest_pas_attributs_fichier, 0)
          Else
            DisableGadget(#ComboBox_attribus_fichiers, 1)
            DisableGadget(#ComboBox_est_nest_pas_attributs_fichier, 1)
          EndIf
          
        ElseIf EventGadget = #CheckBox_type_fichier
          Etas_CheckBox_type_fichier = GetGadgetState(#CheckBox_type_fichier)
          If Etas_CheckBox_type_fichier = 1
            DisableGadget(#ComboBox_est_nest_pas_type_fichier, 0)
            DisableGadget(#ComboBox_type_fichier, 0)
          Else
            DisableGadget(#ComboBox_est_nest_pas_type_fichier, 1)
            DisableGadget(#ComboBox_type_fichier, 1)
          EndIf
          
        ElseIf EventGadget = #ComboBox_est_nest_pas_date_de_creation
          
        ElseIf EventGadget = #ComboBox_opperateur_date_creation
          
        ElseIf EventGadget = #ComboBox_est_nest_pas_date_de_modiffication
          
        ElseIf EventGadget = #ComboBox_est_nest_pas_date_dernier_accer
          
        ElseIf EventGadget = #ComboBox_est_nest_pas_taille_fichier
          
        ElseIf EventGadget = #ComboBox_attribus_fichiers
          
        ElseIf EventGadget = #ComboBox_date_creation_jour
          
        ElseIf EventGadget = #ComboBox_date_creation_annee
          
        ElseIf EventGadget = #ComboBox_date_modiffication_mois
          
        ElseIf EventGadget = #ComboBox_date_creation_mois
          
        ElseIf EventGadget = #ComboBox_opperateur_date_modiffication
          
        ElseIf EventGadget = #ComboBox_opperateur_date_dernier_accer
          
        ElseIf EventGadget = #ComboBox_date_modiffication_jour
          
        ElseIf EventGadget = #ComboBox_date_dernier_accer_jour
          
        ElseIf EventGadget = #ComboBox_date_dernier_accer_mois
          
        ElseIf EventGadget = #ComboBox_date_modiffication_annee
          
        ElseIf EventGadget = #ComboBox_date_dernier_accer_annee
          
        ElseIf EventGadget = #Button_rechercher
          
          
        ElseIf EventGadget = #Button_annuler
          
        ElseIf EventGadget = #ComboBox_taille_fichier
          
        ElseIf EventGadget = #ComboBox_opperateur_taille_fichier
          
        ElseIf EventGadget = #ComboBox_delimiteur_taille_fichier
          
        ElseIf EventGadget = #ComboBox_est_nest_pas_attributs_fichier
          
        ElseIf EventGadget = #ComboBox_est_nest_pas_type_fichier
          
        ElseIf EventGadget = #ComboBox_type_fichier
          
        EndIf
        
      Case #PB_Event_CloseWindow
        EventWindow = EventWindow()
        If EventWindow = #Window_0
          CloseWindow(#Window_0)
          DisableWindow(#Window_1, 0)
          StickyWindow(#Window_1, 1)
          StickyWindow(#Window_1, 0)
          Break
        EndIf
    EndSelect
  ForEver
EndProcedure

Procedure Interface_gestionnaire_de_fichiers()
  ShellMenu.IContextMenu = 0
  If OpenWindow(#Window_1, 426, 54, 749, 600, "Gestionnaire de fichiers", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_TitleBar)
    If CreateStatusBar(#BarreEtat, WindowID(#Window_1))
      AddStatusBarField(800)
    EndIf
    ButtonGadget(#Button_2, 10, 530, 140, 25, "Rechercher un fichier")
    ExplorerListGadget(#ExplorerList_6, 5, 25, 739, 500, "C:\Users\dayvid\Desktop\Base de donnée de fichiers\", #PB_Explorer_GridLines|#PB_Explorer_MultiSelect)
    SetGadgetItemAttribute(#ExplorerList_6, 0, #PB_Explorer_ColumnWidth, 315, 0)
    SetGadgetItemAttribute(#ExplorerList_6, 0, #PB_Explorer_ColumnWidth, 100, 1)
    SetGadgetItemAttribute(#ExplorerList_6, 0, #PB_Explorer_ColumnWidth, 210, 2)
    SetGadgetItemAttribute(#ExplorerList_6, 0, #PB_Explorer_ColumnWidth, 111, 3)
    ButtonGadget(#Button_7, 155, 530, 140, 25, "Mettre a jour des fichiers")
    TextGadget(#Text_8, 5, 5, 739, 15, "Explorateur de la base de données de fichiers", #PB_Text_Center)
  EndIf 
  Repeat
    Event = WaitWindowEvent()
    Repertoire_actuelle$ = GetGadgetText(#ExplorerList_6)
    
    If sauvedarde_Repertoire_actuelle$ <> Repertoire_actuelle$
      sauvedarde_Repertoire_actuelle$ = Repertoire_actuelle$
      StatusBarText(#BarreEtat, 0, Repertoire_actuelle$)
    ElseIf sauvedarde_Repertoire_actuelle$ = "" And Repertoire_actuelle$ = ""
      sauvedarde_Repertoire_actuelle$ = Repertoire_actuelle$
      StatusBarText(#BarreEtat, 0, Repertoire_actuelle$)
    EndIf
    
    Select Event
        
      Case #PB_Event_Gadget
        EventGadget = EventGadget()
        EventType = EventType()
        If EventGadget = #Button_2
          DisableWindow(#Window_1, 1)
          Interface_rechercher_un_fichier()
        ElseIf EventGadget = #ExplorerList_6
          Select EventType
            Case #PB_EventType_LeftDoubleClick 
              ShellExecute_(0,"open",GetGadgetText(#ExplorerList_6)+GetGadgetItemText(#ExplorerList_6, GetGadgetState(#ExplorerList_6) ,0),0,0,1) 
            Case #PB_EventType_LeftClick
              
            Case #PB_EventType_RightClick
                    ; Obtenir l'IDL et ISHELLFOLDER pour la liste d'adresses actuelle dans le gadget
      ;
      If SHGetDesktopFolder_(@Desktop.IShellFolder) = #S_OK
        Debug "got desktop folder"
        
        ParentFolder$ = GetGadgetText(#ExplorerList_6)               
        If Desktop\ParseDisplayName(WindowID(#Window_1), #Null, ParentFolder$, #Null, @*ParentIDL, #Null) = #S_OK
          Debug "got parent folder idl"
          
          If Desktop\BindToObject(*ParentIDL, #Null, ?IID_IShellFolder, @Parent.IShellFolder) = #S_OK
            Debug "got parent folder object"
            
            
            ; Obtenir l'IDLS pour tous les articles choisis
            ;
            TotalCount = CountGadgetItems(#ExplorerList_6)
            ItemCount  = 0
            For i = 0 To TotalCount-1
              If GetGadgetItemState(#ExplorerList_6, i) & #PB_Explorer_Selected And GetGadgetItemText(#ExplorerList_6, i, 0) <> ".."
                ItemCount + 1
              EndIf
            Next i
            
            If ItemCount > 0
                          
              Dim *FileIDL(ItemCount-1)
              
              ParsedCount = 0
              For i = 0 To TotalCount-1
                If GetGadgetItemState(#ExplorerList_6, i) & #PB_Explorer_Selected And GetGadgetItemText(#ExplorerList_6, i, 0) <> ".."
                  ItemName$ = GetGadgetItemText(#ExplorerList_6, i, 0)
                  
                  If Parent\ParseDisplayName(WindowID(#Window_1), #Null, ItemName$, #Null, @*FileIDL(ParsedCount), #Null) = #S_OK
                    ParsedCount + 1
                  EndIf                  
                EndIf
              Next i   
              
              ; Seulement allez au menu en faisant l'analyse syntaxique de tous les articles a travaillé correctement
              ;
              If ParsedCount = ItemCount
                Debug "got item idl's"       
                
                ; Libérer le vieil objet de menu
                If ShellMenu
                  ShellMenu\Release()
                  ShellMenu = 0
                EndIf
                
                ; Ouvrir les clefs d'enregistrement pour des extensions de coquille
                ;
                KeyCount = 1
                Dim KeyStrings.s(KeyCount)
                Dim hKey(KeyCount)
                
                KeyStrings(0) = "*"
;                 KeyStrings(1) = ".txt"
;                 KeyStrings(2) = "txtfile"
                
                KeysOpen = 0
                For i = 0 To KeyCount-1
                  If RegCreateKeyEx_(#HKEY_CLASSES_ROOT, @KeyStrings(i), 0, #Null, 0, #KEY_READ, #Null, @hKey(KeysOpen), #Null) = #ERROR_SUCCESS
                    KeysOpen + 1
                  EndIf
                Next i
                
                ; Créer l'objet de menu pour nos articles avec le susdit rappel de service
                ;
                If CDefFolderMenu_Create2(*ParentIDL, WindowID(#Window_1), ParsedCount, @*FileIDL(), Parent, @Callback(), KeysOpen, @hKey(), @ShellMenu.IContextMenu) = #S_OK
                  Debug "got menu"
                  
                  ; Créer un PB popupmenu pour mettre les articles de menu dans
                  ;
                  If CreatePopupMenu(#Menu)
                    Debug "got pb menu"
                   
                    ; Ajouter le menu de Coquille(obus) à notre menu contextuel
                    ; Vous pouvez spécifier la gamme d'article de menu ids pour employer ici (pour pas être en conflit avec d'autres de votre programme)
                    ;                       
                    If ShellMenu\QueryContextMenu(MenuID(#Menu), 0, #FirstShellMenuItem, #LastShellMenuItem, #CMF_NORMAL|#CMF_CANRENAME) >= 0
                      Debug "menu items added"
                    
                      ; Montrez le menu contextuel
                      ;
                      DisplayPopupMenu(#Menu, WindowID(#Window_1))
                    EndIf
                  EndIf
                EndIf    
                
                For i = 0 To KeysOpen-1
                  RegCloseKey_(hkey(i))
                Next i
              
              Else
                Debug "error in parsing a selected item"
                
              EndIf
              
              ; Libérer l'article IDLs (autant qu'ils ont été faits l'analyse syntaxique)
              ;
              For i = 0 To ParsedCount-1 
                CoTaskMemFree_(*FileIDL(i))
              Next i

            EndIf
            
            Parent\Release()
          EndIf
          
          CoTaskMemFree_(*ParentIDL)
        EndIf 
      
        Desktop\Release()
      EndIf
    
  EndSelect
  
    ElseIf EventGadget = #Button_7
      
        ElseIf EventGadget = #Text_8
          
        ElseIf EventGadget = #Text_9
          
        ElseIf EventGadget = #Frame3D_10
          
        EndIf
        
        ; Un événement de menu de la gamme de contextmenu
    ;
        Case #PB_Event_Menu 
    If ShellMenu And EventMenu() >= #FirstShellMenuItem And EventMenu() <= #LastShellMenuItem
    
      If EventMenu() = CustomMenuEntry
        ; Son notre article de menu personnalisé
        Debug "--- custom menu item selected ---"
      
      Else
        ; Son des articles de coquille
        
        Debug "handling event: " + Str(EventMenu())

        Command$ = Space(1000)
        If ShellMenu\GetCommandString(EventMenu(), #GCS_VERBA, #Null, @Command$, 1000) = #S_OK
          Debug "Commmand: " + Command$      
          
          ; On peut être directement passer certaines de ces commandes à ShellExecute _ () par exemple         
        EndIf
      
        ; Laisser l'objet de menu exécuter cette commande
        ;
        info.CMINVOKECOMMANDINFOEX\cbSize = SizeOf(CMINVOKECOMMANDINFOEX)
        info\fMask  = 0
        info\hwnd   = WindowID(#Window_1)
        info\lpVerb = EventMenu()
        info\nShow  = #SW_SHOWNORMAL
        
        err = ShellMenu\InvokeCommand(@info)
        If err = #S_OK
          Debug "command executed"
        Else
          Debug "command could not be executed. error = "+Str(err)
        EndIf
      EndIf
      
    EndIf  
        
      Case #PB_Event_CloseWindow
        EventWindow = EventWindow()
        If EventWindow = #Window_1
          CloseWindow(#Window_1)
          Break
        EndIf
        
    EndSelect
  ForEver
  
  CoUninitialize_()
  
EndProcedure

Procedure Decoupage_date(Date_a_decouper)
  Second = Second(Date_a_decouper)
  Minute = Minute(Date_a_decouper)
  Heur = Hour(Date_a_decouper)
  Jour_semaine = DayOfWeek(Date_a_decouper)
  Jour_mois = Day(Date_a_decouper)
  Mois = Month(Date_a_decouper)
  Annee = Year(Date_a_decouper)
  
  If Second < 10
    Second$ = "0" + Str(Second)
  Else
    Second$ = Str(Second)
  EndIf
  
  If Minute < 10
    Minute$ = "0" + Str(Minute)
  Else
    Minute$ = Str(Minute)
  EndIf
  
  If Heur < 10
    Heur$ = "0" + Str(Heur)
  Else
    Heur$ = Str(Heur)
  EndIf
  
  If Jour_semaine = 0
    Jour_semaine$ = "Lundi"
  ElseIf Jour_semaine = 1
    Jour_semaine$ = "Mardi"
  ElseIf Jour_semaine = 2
    Jour_semaine$ = "Mercredi"
  ElseIf Jour_semaine = 3
    Jour_semaine$ = "Jeudi"
  ElseIf Jour_semaine = 4
    Jour_semaine$ = "Vendredi"
  ElseIf Jour_semaine = 5
    Jour_semaine$ = "Samedi"
  ElseIf Jour_semaine = 6
    Jour_semaine$ = "Dimanche"
  EndIf
  
  If Mois = 1
    Mois$ = "Janvier"
  ElseIf Mois = 2
    Mois$ = "Fevrier"
  ElseIf Mois = 3
    Mois$ = "Mars"
  ElseIf Mois = 4
    Mois$ = "Avril"
  ElseIf Mois = 5
    Mois$ = "Mais"
  ElseIf Mois = 6
    Mois$ = "Juin"
  ElseIf Mois = 7
    Mois$ = "juillet"
  ElseIf Mois = 8
    Mois$ = "Aout"
  ElseIf Mois = 9
    Mois$ = "Septembre"
  ElseIf Mois = 10
    Mois$ = "Octobre"
  ElseIf Mois = 11
    Mois$ = "Novembre"
  ElseIf Mois = 12
    Mois$ = "Décembre"
  EndIf
EndProcedure

Procedure recherche_fichier(Fichier_a_rechercher$)
  If Fichier_a_rechercher$ > ""
    If ReadFile(1, "Indexation des fichiers.txt")  ; Si le fichier peut être lu , on continue...
      While Eof(1) = 0           ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
        AddElement(liste_fichier())
        liste_fichier() = ReadString(1)      ; Affiche ligne par ligne le contenu du fichier
      Wend
      CloseFile(1)               ; Ferme le fichier précédemment ouvert
    Else
      MessageRequester("Information","Impossible d'ouvrir le fichier:  Indexation des fichiers.txt !")
    EndIf
  EndIf
  
  If Date_creation_fichier$ > ""
    Date_creation_fichier = 1
  EndIf
  
  If Date_modiffication_fichier$ > ""
    Date_modiffication_fichier = 1
  EndIf
  
  If Date_dernier_accer_fichier$ > ""
    Date_dernier_accer_fichier = 1
  EndIf
  
  If Taille_fichier$ > ""
    Taille_fichier = 1
  EndIf
  
  If Attributs_fichier$ > ""
    Attributs_fichier = 1
  EndIf
  
  If type_fichier$ > ""
    Type_fichier = 1
  EndIf
  
  ForEach liste_fichier()
    Position_recherche = Len(liste_fichier())  + 1
    
    Repeat
      Position_recherche - 1
      Recherche_slach$ = Mid(liste_fichier(), Position_recherche, 1)
    Until Recherche_slach$ = "\"
    
    Fichier_extrai$ = Mid(liste_fichier(), Position_recherche + 1)
    
    If Respecter_la_case$ = "oui"
      If FindString(Fichier_extrai$, Fichier_a_rechercher$, 1)
        Debug liste_fichier()
      EndIf
    Else
      If FindString(LCase(Fichier_extrai$), LCase(Fichier_a_rechercher$), 1)
        Debug liste_fichier()
      EndIf
    EndIf
    
  Next liste_fichier()
  
  If Date_creation_fichier$ > ""
    If Date_creation_fichier = 1
      Fichier_trouver = 1
    Else
      Fichier_trouver = 0
    EndIf
  EndIf
  
  If Date_modiffication_fichier$ > ""
    If Date_modiffication_fichier = 1
      Fichier_trouver = 1
    Else
      Fichier_trouver = 0
    EndIf
  EndIf
  
  If Date_dernier_accer_fichier$ > ""
    If Date_dernier_accer_fichier = 1
      Fichier_trouver = 1
    Else
      Fichier_trouver = 0
    EndIf
  EndIf
  
  If Taille_fichier$ > ""
    If Taille_fichier = 1
      Fichier_trouver = 1
    Else
      Fichier_trouver = 0
    EndIf
  EndIf
  
  If Attributs_fichier$ > ""
    If Attributs_fichier = 1
      Fichier_trouver = 1
    Else
      Fichier_trouver = 0
    EndIf
  EndIf
  
  If Type_fichier$ > ""
    If Type_fichier = 1
      Fichier_trouver = 1
    Else
      Fichier_trouver = 0
    EndIf
  EndIf
  
EndProcedure

Procedure.s Recherche_parametre_fichier(repertoire)
  Recherche_parametre_Date_creation_fichier = DirectoryEntryDate(Repertoire, #PB_Date_Created)
  Recherche_parametre_Date_modiffication_fichier = DirectoryEntryDate(Repertoire, #PB_Date_Modified)
  Recherche_parametre_Date_dernier_accer_fichier = DirectoryEntryDate(Repertoire, #PB_Date_Accessed)
  Recherche_parametre_Taille_fichier = DirectoryEntrySize(Repertoire)
  Recherche_parametre_Attributs_fichier = DirectoryEntryAttributes(Repertoire)
  
  Jour$ = Trim(Jour$)
  Mois$ = Trim(Mois$)
  
  Decoupage_date(Recherche_parametre_Date_creation_fichier)
  Parametre_fichier$ = "Crée le " + Jour_semaine$ + " " + Str(Jour_mois) + " " + Mois$ + " " + Str(Annee) + " à " + Heur$ + "H" + Minute$ + " et " + Second$ + " second, "
  
  Decoupage_date(Recherche_parametre_Date_modiffication_fichier)
  Parametre_fichier$ + "Modifier le " + Jour_semaine$ + " " + Str(Jour_mois) + " " + Mois$ + " " + Str(Annee) + " à " + Heur$ + "H" + Minute$ + " et " + Second$ + " second, "
  
  Decoupage_date(Recherche_parametre_Date_dernier_accer_fichier)
  Parametre_fichier$ + "Dernier accer le " + Jour_semaine$ + " " + Str(Jour_mois) + " " + Mois$ + " " + Str(Annee) + " à " + Heur$ + "H" + Minute$ + " et " + Second$ + " second, "
  
  Parametre_fichier$ + "Taille en octets = " + Str(Recherche_parametre_Taille_fichier) + ", Attributs = " + Str(Recherche_parametre_Attributs_fichier)
  
  ProcedureReturn Parametre_fichier$
EndProcedure

; par dobro, modifier par dayvid
Procedure.s Indexation(Repertoire$, Repertoire = 0) 
  If Right(Repertoire$, 1) <> "\"
    Repertoire$ + "\"
  EndIf 
  If ExamineDirectory(Repertoire, Repertoire$, "*.*") 
    While NextDirectoryEntry(Repertoire) 
      If DirectoryEntryName(Repertoire) <> "." And DirectoryEntryName(Repertoire) <> ".." 
        ; affichage les adresse de dossier = non
        If FindString(Repertoire$ + DirectoryEntryName(Repertoire), ".", 1)
          AddElement(Indexation_fichiers())
          Indexation_fichiers() = Repertoire$ + DirectoryEntryName(Repertoire) + ", " + Recherche_parametre_fichier(Repertoire)
        Else
        EndIf
        If DirectoryEntryType(Repertoire) = #PB_DirectoryEntry_Directory
          Indexation(Repertoire$ + DirectoryEntryName(Repertoire), Repertoire + 1)
        EndIf 
      EndIf 
    Wend 
    FinishDirectory(Repertoire) 
  EndIf 
EndProcedure

Procedure Enregistrement_liste_index(Nom_fichier$)
  DeleteFile(Nom_fichier$ + ".txt")
  
  If CreateFile(1, Nom_fichier$ + ".txt") ; si on peut crée le fichier, on continue
    ForEach Indexation_fichiers()
      FileSeek(1, Lof(1))
      WriteStringN(1, Indexation_fichiers())
    Next Indexation_fichiers()
  Else
    MessageRequester("Erreur", "Inpossible de crée le fichier " + Nom_fichier$ + ".txt", 16)
  EndIf
  
EndProcedure

Procedure indexation_des_fichiers()
  Indexation(Repertoire$) 
  Enregistrement_liste_index("Indexation des fichiers")
EndProcedure

Interface_gestionnaire_de_fichiers()

DataSection

  IID_IShellFolder: ; {000214E6-0000-0000-C000-000000000046}
    Data.l $000214E6
    Data.w $0000, $0000
    Data.b $C0, $00, $00, $00, $00, $00, $00, $46

EndDataSection
Mais ya quelques petit soucis, par exemple
que je clique sur un fichier ou un dossier c'est la même chose (premier problème)

Pas trouvé pourquoi le « ouvrir avec » est en gras
ya un menue qui manque à "ouvrir avec"

Bref ya pleins de bug mais le principale est que j'avence :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Question sur FileSystem

Message par dayvid »

Salut, vous ne pourrez pas dire que j'ai pas attendue cette fois-ci :mrgreen:
serais t-il possible de m'aider ?

Que dois-je faire sinon pour avoir de l'aide ?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre