Code : Tout sélectionner
;################################ ***** ***** ***** ***** ***** ** ** ***** ** **
;# Programme: File Manager # ** ** * ** * ** ** ** * * ** ** * ** * **
;# Auteur : SpaceMan/micko # ***** ***** ***** ** ***** ** * ** ***** ** * **
;# Version : Démo # ** ** ** * ** ** ** ** ** * ** ***
;# démarré : Février 2007 # ***** ** ** * ***** ***** ** ** ** * ** **
;# Horaires : ..........heures # ***** ** ** * ***** ***** ** ** ** * ** **
;################################
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Toolbars
Enumeration
#Toolbar_Window_0
EndEnumeration
;}
;{ Menu bars
Enumeration
#Menu_Window_0
EndEnumeration
;}
;{ Menu/Toolbar items
Enumeration
#Menu_Window_0_0_Couper
#Menu_Window_0_1_Copier
#Menu_Window_0_2_Renommer
#Menu_Window_0_3_Supprimer
#Menu_Window_0_4_Rechercher
#Menu_Window_0_5_Nettyage
#Menu_Window_0_6_Corbeille
#Menu_Window_0_2_Parametres
#Menu_Window_0_2_Outils
#Menu_Window_0_3_Quitter
#Menu_Window_0_4_Aide
#Menu_Window_0_5_APropos
#Toolbar_Window_0_0_Copy
#Toolbar_Window_0_1_Cut
#Toolbar_Window_0_2_Delete
#Toolbar_Window_0_3_Properties
#Toolbar_Window_0_3_Replace
#Toolbar_Window_0_4_Find
EndEnumeration
;}
;{ Gadgets
Enumeration
#Txt1
#ContainerGadget
#ExplorerCombo_0
#ExplorerList_1
#Frame3D_0
#Frame3D_1
#Frame3D_2
#Frame3D_3
#Button_2
#Button_3
#Button_4
#Button_5
#Button_6
#Button_7
#Button_8
#Button_9
#Button_10
EndEnumeration
;}
Global Recherche.s
PositionListe = -1
Global Disk$,Disk1$,Chemin$
Disk$ = "C:\"
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure.l GetListPos(Gadget.l)
ProcedureReturn SendMessage_(GadgetID(Gadget), #LVM_GETTOPINDEX, 0, 0)
EndProcedure
Procedure.l SetListPos(Gadget.l, Position.l)
Protected Pos.POINT
SendMessage_(GadgetID(Gadget), #LVM_GETITEMPOSITION, Position - 1, Pos)
SendMessage_(GadgetID(Gadget), #LVM_SCROLL, 0, Pos\y)
EndProcedure
Procedure.l RechercheSuivant()
Protected Txt.s, Txt_Longueur.l, valeur.s, Pos
Pos = GetGadgetState(#ExplorerList_1) ; On récupère la position sélectionné dans la liste
Repeat
For n = Pos + 1 To CountGadgetItems(#ExplorerList_1) ; De la position actuelle + 1 (car on ne fait pas la recherche sur l'élément sélectionné mais sur les suivants) jusqu'à la fin de la liste
Txt.s = LCase(GetGadgetItemText(#ExplorerList_1, n, 0)) ; On récypère le texte de la ListIconGadget
If Recherche = Txt ; Si le texte correspond à la recherche
;SetGadgetItemState(#ExplorerList_1, n,0) ; On sélectionne l'élément
; WINDOWS UNIQUEMENT
;
; Sélectionner l'élément 1 du gadget 0
LVITEM.LV_ITEM
LVITEM\mask = #LVIF_STATE
LVITEM\state = #LVIS_SELECTED
LVITEM\stateMask = #LVIS_SELECTED
SendMessage_(GadgetID(#ExplorerList_1), #LVM_SETITEMSTATE, n, @LVITEM):SetActiveGadget(#ExplorerList_1)
;SendMessage_(GadgetID(#ExplorerList_1), SetGadgetItemColor(#ExplorerList_1, n, #PB_Gadget_BackColor, $EB2318, 0), n, @LVITEM)
Debug GetGadgetState(#ExplorerList_1)
;
;SetGadgetState(GetListPos(#ExplorerList_1), n) ; On sélectionne l'élément
SetListPos(#ExplorerList_1, n) ; On déplace la liste pour voir l'élément :
ProcedureReturn 1
EndIf
Next
Pos = -1 ; On se place au début de la liste
Until MessageRequester("Recherche", "Fin de fichier atteinte." + Chr(10) + "Reprendre la recherche à partir du début du fichier ?", 4) = 7
; On continue tant que l'utilisateur dit de continuer la recherche du début
ProcedureReturn 0
EndProcedure
Procedure Recherche()
Txt.s = InputRequester("Recherche","Nom du document :","") ; On demande le texte recherché
If Txt
Recherche = LCase(Txt)
RechercheSuivant()
EndIf
EndProcedure
;
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 524, 379, 590, 382, "PC-DEV File Manager", #PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_SizeGadget|#PB_Window_ScreenCentered|#PB_Window_Invisible)
SetWindowLong_(WindowID(#Window_0), #GWL_STYLE, GetWindowLong_(WindowID(#Window_0), #GWL_STYLE)|#WS_CLIPCHILDREN)
SetActiveWindow(#Window_0)
CreateGadgetList(WindowID(#Window_0))
If CreateMenu(#Menu_Window_0, WindowID(#Window_0))
MenuTitle("Menu")
MenuItem(#Menu_Window_0_1_Copier, "Copier")
MenuItem(#Menu_Window_0_0_Couper, "Couper")
MenuItem(#Menu_Window_0_2_Renommer, "Renommer")
MenuItem(#Menu_Window_0_3_Supprimer, "Supprimer")
MenuItem(#Menu_Window_0_4_Rechercher, "Rechercher")
MenuItem(#Menu_Window_0_5_Nettyage, "Nettyage")
MenuItem(#Menu_Window_0_6_Corbeille, "Corbeille")
MenuBar()
MenuItem(#Menu_Window_0_2_Parametres, "Parametres")
MenuItem(#Menu_Window_0_2_Outils, "Outils")
MenuBar()
MenuItem(#Menu_Window_0_3_Quitter, "Quitter")
MenuTitle("Aide")
;MenuItem(#Menu_Window_0_4_Aide, "Aide")
MenuItem(#Menu_Window_0_5_APropos, "A Propos")
CreateToolBar(#Toolbar_Window_0, WindowID(#Window_0))
ToolBarStandardButton(#Toolbar_Window_0_0_Copy, #PB_ToolBarIcon_Copy)
ToolBarStandardButton(#Toolbar_Window_0_1_Cut, #PB_ToolBarIcon_Cut)
ToolBarStandardButton(#Toolbar_Window_0_2_Delete, #PB_ToolBarIcon_Delete)
ToolBarStandardButton(#Toolbar_Window_0_3_Replace, #PB_ToolBarIcon_Replace)
ToolBarStandardButton(#Toolbar_Window_0_4_Find, #PB_ToolBarIcon_Find)
ToolBarStandardButton(#Toolbar_Window_0_3_Properties, #PB_ToolBarIcon_Properties)
;ToolBarStandardButton(#Toolbar_Window_0_4_Help, #PB_ToolBarIcon_Help)
ToolBarToolTip(#Toolbar_Window_0, #Toolbar_Window_0_0_Copy, "Copier")
ToolBarToolTip(#Toolbar_Window_0, #Toolbar_Window_0_1_Cut, "Couper")
ToolBarToolTip(#Toolbar_Window_0, #Toolbar_Window_0_2_Delete, "Supprimer")
ToolBarToolTip(#Toolbar_Window_0, #Toolbar_Window_0_3_Properties, "options")
ToolBarToolTip(#Toolbar_Window_0, #Toolbar_Window_0_3_Replace, "Renommer")
ToolBarToolTip(#Toolbar_Window_0, #Toolbar_Window_0_4_Find, "Rechercher")
CreateGadgetList(WindowID(#Window_0))
TextGadget(#Txt1, 160, 345,250,20,"PC-DEV File Manager © PC-DEV 2007",#PB_Text_Center)
DisableGadget(#Txt1,1)
ContainerGadget(#ContainerGadget, 3, 25, 583, 316, #PB_Container_Raised)
ExplorerComboGadget(#ExplorerCombo_0, 3, 05, 475, 175, Disk$)
ExplorerListGadget(#ExplorerList_1, 3, 35, 475, 270, Disk$, #PB_Explorer_MultiSelect|#PB_Explorer_AlwaysShowSelection|#PB_Explorer_FullRowSelect|#PB_Explorer_AutoSort)
SetGadgetItemAttribute(#ExplorerList_1,0, #PB_Explorer_ColumnWidth,153)
PureRESIZE_SetGadgetResize(#ExplorerCombo_0, 1, 1, 1, 1)
PureRESIZE_SetGadgetResize(#ExplorerList_1, 1, 1, 1, 1)
;SetGadgetColor(#ExplorerList_1, #PB_Gadget_BackColor, $5F031D);$710422
;SetGadgetColor(#ExplorerList_1, #PB_Gadget_FrontColor, $FFFF00)
;SetGadgetColor(#ExplorerList_1, #PB_Gadget_LineColor, $000000)
Frame3DGadget(#Frame3D_0, 485, 1, 90, 218, "Tâches")
Frame3DGadget(#Frame3D_3, 488, 7, 84, 208, "")
ButtonGadget(#Button_2, 495, 21, 70, 20, "Copier")
ButtonGadget(#Button_3, 495, 48, 70, 20, "Couper")
ButtonGadget(#Button_4, 495, 76, 70, 20, "Renommer")
ButtonGadget(#Button_5, 495, 104, 70, 20, "Supprimer")
ButtonGadget(#Button_6, 495, 132, 70, 20, "Rechercher")
ButtonGadget(#Button_7, 495, 160, 70, 20, "Nettoyage")
ButtonGadget(#Button_8, 495, 188, 70, 20, "Corbeille")
Frame3DGadget(#Frame3D_1, 485, 230, 90, 78, "Options")
Frame3DGadget(#Frame3D_2, 488, 238, 84, 66, "")
ButtonGadget(#Button_9, 495, 250, 70, 20, "Parametres")
ButtonGadget(#Button_10, 495, 278, 70, 20, "Outils")
PureRESIZE_SetGadgetResize(#Txt1, 1,0,1,1)
PureRESIZE_SetGadgetResize(#ContainerGadget, 1,1,1,1)
PureRESIZE_SetGadgetResize(#Frame3D_0, 0,1,1,1)
PureRESIZE_SetGadgetResize(#Frame3D_3, 0,1,1,1)
PureRESIZE_SetGadgetResize(#Button_2, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Button_3, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Button_4, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Button_5, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Button_6, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Button_7, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Button_8, 0,1,1,0)
PureRESIZE_SetGadgetResize(#Frame3D_1, 0,0,1,1)
PureRESIZE_SetGadgetResize(#Frame3D_2, 0,0,1,1)
PureRESIZE_SetGadgetResize(#Button_9, 0,0,1,0)
PureRESIZE_SetGadgetResize(#Button_10, 0,0,1,0)
;PureRESIZE_SetWindowMaximumSize(0, 800,600)
;PureRESIZE_SetWindowMinimumSize(#Window_0, WindowWidth(#Window_0)+8,275)
EndIf
EndIf
EndProcedure
Procedure copier()
If GetGadgetState(#ExplorerList_1) > -1 ; au moins un élément est sélectionné
CheminInitial$ = "C:\"
Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
If Chemin$ ; un chemin a été choisi
For i = 0 To CountGadgetItems(#ExplorerList_1) - 1
If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected ; un élément est sélectionné et c'est ...
;Debug GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné"
If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_File ; ... un fichier
;Debug "CopyFile(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0)+ ", " + Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0) + ") "
CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0))
ElseIf GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Directory ; ... un répertoire
;Debug "CopyDirectory(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0) + ", " + Chemin$ + ", " + #DQUOTE$ + "*.*" + #DQUOTE$ + " ,#PB_FileSystem_Recursive )"
CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0) , "*.*" ,#PB_FileSystem_Recursive)
EndIf
EndIf
Next
EndIf
ElseIf GetGadgetState(#ExplorerList_1) = -1
MessageRequester("Copie Impossible","Sélectionner les éléments à copier SVP !",# MB_ICONERROR)
EndIf
EndProcedure
Procedure couper()
If GetGadgetState(#ExplorerList_1) > -1 ; au moins un élément est sélectionné
CheminInitial$ = "C:\"
Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
If Chemin$ ; un chemin a été choisi
For i = 0 To CountGadgetItems(#ExplorerList_1) - 1
If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected ; un élément est sélectionné et c'est ...
; Debug GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné"
If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_File ; ... un fichier
;Debug "CopyFile(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0)+ ", " + Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0) + ") "
CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0))
DeleteFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0))
ElseIf GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Directory ; ... un répertoire
;Debug "CopyDirectory(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0) + ", " + Chemin$ + ", " + #DQUOTE$ + "*.*" + #DQUOTE$ + " ,#PB_FileSystem_Recursive )"
CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0) , "*.*" ,#PB_FileSystem_Recursive)
DeleteDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1,i, 0),"*.*",#PB_FileSystem_Recursive|#PB_FileSystem_Force)
EndIf
EndIf
Next
EndIf
ElseIf GetGadgetState(#ExplorerList_1) = -1
MessageRequester("Copie Impossible","Sélectionner les éléments à couper SVP !",# MB_ICONERROR)
EndIf
EndProcedure
Procedure Renommer()
If GetGadgetState(#ExplorerList_1) > -1 ; au moins un élément est sélectionné
NouveauNom$ = InputRequester("Renommer","Nom du nouveau du document :",""+GetGadgetText(#ExplorerCombo_0)+ GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0))
If NouveauNom$
msg = MessageRequester("Impossible","Voulez-vous vraiment renommer " + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0)+" en " + "<<" + NouveauNom$+">>",# MB_YESNO)
If msg =6
RenameFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),NouveauNom$)
ElseIf msg =7
EndIf
EndIf
Else
MessageRequester("Impossible","Sélectionner l'élément à renommer SVP !",# MB_ICONERROR)
EndIf
EndProcedure
Procedure supprimer()
If GetGadgetState(#ExplorerList_1) > -1 ; au moins un élément est sélectionné
msg = MessageRequester("Suppression","Voulez-vous vraiment supprimer la (les) sélection (s) ?", # MB_YESNO|#MB_ICONWARNING)
If msg =6
For i = 0 To CountGadgetItems(#ExplorerList_1) - 1
If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected ; un élément est sélectionné et c'est ...
If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_File
DeleteFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0))
ElseIf GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Directory ; ... un répertoire
DeleteDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),"*.*",#PB_FileSystem_Recursive|#PB_FileSystem_Force)
EndIf
EndIf
Next
ElseIf msg =7:EndIf
Else
MessageRequester("Suppression","Sélectionner les éléments à supprimer SVP !",# MB_ICONINFORMATION)
EndIf
EndProcedure
Procedure DeleteFileToRecycleBinM(File.s)
Protected SHFileOp.SHFILEOPSTRUCT
SHFileOp\pFrom = @File
SHFileOp\wFunc = #FO_DELETE
SHFileOp\fFlags = #FOF_ALLOWUNDO |#FOF_NOCONFIRMATION
If SHFileOperation_(@SHFileOp) = 0
ProcedureReturn #True
EndIf
EndProcedure
Procedure effacer_fichiertemp()
msg = MessageRequester("Netoyage","Le nettoyage permet de rechercher et de supprimer les "+Chr(13)+"fichiers temporaires (*.tmp et *chk) de votre ordinateur."+Chr(13)+"voulez-vous supprimer tous ces fichiers ?",# MB_YESNO|#MB_ICONWARNING)
If msg = 6
TempDir$ = GetTemporaryDirectory()
ExamineDirectory(0, TempDir$, "*.*")
Repeat
FileType = NextDirectoryEntry(0)
If FileType = 1
Filename$ = DirectoryEntryName(0)
; Debug(Filename$)
If DeleteFileToRecycleBinM(TempDir$ + Filename$)=0
;MessageRequester("Netoyage","Certains fichiers ne peuvent être suppimés!",# MB_ICONEXCLAMATION)
EndIf
EndIf
; EndIf
Until FileType = 0
Else
EndIf
EndProcedure
Procedure EmptyTrash(confirm)
If OpenLibrary(0,"shell32.dll") And IsLibrary(0)
CallFunction(0,"SHEmptyRecycleBinA",0,"",1-confirm)
CloseLibrary(0)
EndIf
EndProcedure
OpenWindow_Window_0()
ShowWindow(WindowID(#Window_0),#SW_SHOWNA)
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget ;
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #ExplorerCombo_0
;Disk$ = GetGadgetText(#ExplorerCombo_0)
SetGadgetText(#ExplorerList_1, GetGadgetText(#ExplorerCombo_0))
ElseIf EventGadget = #ExplorerList_1
If EventType() = #PB_EventType_LeftDoubleClick
MessageRequester("Info",GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),# MB_ICONINFORMATION)
EndIf
ElseIf EventGadget = #Button_2 ; pour copier les éléments sélectionnés
copier()
ElseIf EventGadget = #Button_3 ;pour couper les éléments sélectionnés
couper()
ElseIf EventGadget = #Button_4 ; Renommer
Renommer()
ElseIf EventGadget = #Button_5 ; Suppression
supprimer()
ElseIf EventGadget = #Button_6 ; rechercher
Recherche()
ElseIf EventGadget = #Button_7 ; Nettoyage
effacer_fichiertemp()
ElseIf EventGadget = #Button_8
EmptyTrash(1); 1 pour confirmer et 0 pour ne pas confirmer
EndIf
; /////////////////
Case #PB_Event_Menu
EventMenu = EventMenu()
If EventMenu = #Menu_Window_0_0_Couper
couper()
ElseIf EventMenu = #Menu_Window_0_1_Copier
copier()
ElseIf EventMenu = #Menu_Window_0_2_Renommer
Renommer()
ElseIf EventMenu = #Menu_Window_0_3_Supprimer
supprimer()
ElseIf EventMenu = #Menu_Window_0_4_Rechercher
Recherche()
ElseIf EventMenu = #Menu_Window_0_5_Nettyage
effacer_fichiertemp()
ElseIf EventMenu = #Menu_Window_0_6_Corbeille
ElseIf EventMenu = #Menu_Window_0_2_Parametres
ElseIf EventMenu = #Menu_Window_0_3_Quitter
Break
ElseIf EventMenu = #Menu_Window_0_4_Aide
ElseIf EventMenu = #Menu_Window_0_5_APropos
ElseIf EventMenu = #Toolbar_Window_0_0_Copy
copier()
ElseIf EventMenu = #Toolbar_Window_0_1_Cut
couper()
ElseIf EventMenu = #Toolbar_Window_0_2_Delete
supprimer()
ElseIf EventMenu = #Toolbar_Window_0_3_Replace
Renommer()
ElseIf EventMenu = #Toolbar_Window_0_4_Find
Recherche()
ElseIf EventMenu = #Toolbar_Window_0_3_Properties
; ElseIf EventMenu = #Toolbar_Window_0_4_Help
EndIf
; ////////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver
