Aidez UN gro Boulet en VbScript

Fermé
Samymi - 13 janv. 2004 à 12:26
carbon3 Messages postés 470 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 6 janvier 2013 - 21 févr. 2008 à 17:29
Oye Oye Cher developpeur je suis sans doute le plus nil developpeur que vous rencontrerez durant toute votre vie...

Soit je debute donc essaie de me familiariser avec le VBScript...
Jessaie de Faire Un Disk Cleaner ki supprimerai les *.tmp d'un disk ou repertoire...

Voici le debut du code Source :

MsgBox "Bienvenue dans l'assistant" & Chr(13) & "Nettoyage des Disks" ,vbOk + vbInformation, "Menage des HD"

MsgBox "Veuillez Choisir" & Chr(13) & "Le disk que vous voulez nettoyer" ,vbOk + vbExclamation, "Menage des HD"

Function B(Msg)
On Error Resume Next
Dim a,f,i,w
Set a=WScript.CreateObject("Shell.Application")
Set w=CreateObject("Wscript.Shell")

Set f=a.BrowseForFolder(&H0&,Msg,&h1&)
B=f.ParentFolder.ParseName(f.Title).Path

If Err.Number<>0 Then
B=Null
If f.Title="Desktop" Then B=w.SpecialFolders("Desktop")
i=InStr(f.Title, ":")
If i>0 Then B=Mid(f.Title,i-1,2) & "\"
End If
End Function

S=B("Choisissez un répertoire")

If IsNull(S) Then
MsgBox "Selection Invalide"
Else
MsgBox "Vous avez choisi " & S & Chr(13) & "Etes-vous sûre ?" ,vbYesNoCancel + vbQuestion, "Menage des HD"
End If


MICI DAVANCE !!!!

20 réponses

allez koi aidez moi pls...
0
Utilisateur anonyme
13 janv. 2004 à 14:06
Bah, et c'est quoi ta question ?
T'es bien parti, la !

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Bah justement jsuis ptete bien parti mais je sai meme pas attribuer une fonction pour chak bouton des box !

Jessaie en vain avec la doc mais jsuis vraiment tro debutant pour comprendre...

Jsuis pa matheux en plus a la base je pete un plomb !

Donkeu jfais koi pour lui kil supprime les *.tmp du repertoire ou du disk et ses sous-repertoires apres avoit cliker sur uui apres confirmation ?

Et kan on clik sur Cancel jfais comment pour kitter ?

Et sur nan ?

PLEASE HELP ME JSUIS UN GROS BOULET DEBUTANT...
0
ALLLEZ koi Sivouplease...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
:( :( :(
0
Utilisateur anonyme
13 janv. 2004 à 15:46
J'ai vraiment du mal à te lire... Pourrais tu faire un effort, stp ? :)
Pour le reste, je vais te mettre sur la voie:
Dim Res
Res = MsgBox ("Vous avez choisi " & S & Chr(13) & "Etes-vous sûre ?" ,vbYesNo + vbQuestion,"Menage des HD" )
Select Case Res
	Case vbYes
	'Traitement nettoyage des disques
	'Utilise la fonction system()
	Case vbNo
	'Exit du programme
End Select




Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Désolé pour mon ecriture...

J'ai toujours ce reflexe d'écrire facon sms pour les forums...

Voir pour tout meme !

Mais je fais l'effort

Merci en tout CAS !!!
0
Case vbYes
'Traitement nettoyage des disques
'Utilise la fonction system() ---> Perdu !!!
Case vbNo
'Exit du programme ----> Je voudrais bien savoir ouais
cest koi la fonction qui quitte le script ! Ca me servirai
pour les Cancel aussi !
0
Utilisateur anonyme
13 janv. 2004 à 16:27
C'est pas system( )... (J'suis encore dans le php) :)

En fait, pour démarrer un executable, il te faut faire:

Set shell = WScript.CreateObject("WScript.Shell") //Création d'un objet
Shell.run ("%SystemRoot%\system32\cmd32.exe") //Utilisation des proprietés


Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Merci cest cool et bon a savoir mais ca ne repond pas a mes attentes ?

Quel est la fonction a mettre pour que lorsque l'on clique sur Cancel ca quitte le script ?

Et il n'ya que ce moyen la pour supprimer les *.tmp d'un repertoire ? Par le Cmd ?
0
Utilisateur anonyme
13 janv. 2004 à 16:49
Ben, si tu mets rien, le programme se termine normalement, et ca quitte tout seul !

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Bah nan justement par exemple sur les msgbox du debut quand jappuie sur Cancel ou Ok il passe a la Msg Box d'après!

Avec Cancel jai mit genre "Bah pourquoi tu lances l'assistant?" et bim il passe a la msgBox d'après moi je veux pas je veux qu'il quitte !

Comment kon fait ?
0
??
0
Soit ?
0
Utilisateur anonyme
14 janv. 2004 à 11:05
Re,
Faut que tu gères tes msgbox avec des select case comme je l'ai fait.
Si je clique sur le premier bouton, il se passe ca, si je clique sur l'autre, il se passe ca.
Pour stopper le code, il me semble que c'est End, j'en suis pas sur, vu que c'est pas du vb mais du vbscript.

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Utilisateur anonyme
14 janv. 2004 à 11:09
Apparement, le mot clé stop a l'air de fonctionner...

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Ouais merci mais jai trouvé pour quitter le script quand tu quitte sur Cancel

Case vbNo ou Case vbCancel
suivi de wscript.quit

JE missione maintenant pour faire en sorte que le script supprime les .tmp ou toute autre fichier a supprimer donc ne servant plus pour le systeme par rapport au repertoire ou au disk ke lon choisit... et donc a tous les repertoires ki en suit...

Kkun sait ?
0
...
0
Alors Jai bien avancé aujourdhui et je suis bloké sur un truc :

Dim Wel
Wel = MsgBox ("Bienvenue dans l'assistant" & Chr(13) & "Nettoyage des Disques" ,vbOk + vbInformation, "Ménage des HDD")
Select Case Wel
Case VbOk

Case VbCancel
MsgBox "Bah Pourquoi tu lances l'assistant alors ?", ,"Alala"
wscript.quit
End Select

'---------------------------------------------------------------------------------------------------------------------------

Choice = MsgBox ("Veuillez Choisir" & Chr(13) & "Le disque que vous voulez nettoyer" ,vbOk + vbExclamation, "Ménage des HDD")
Select Case Choice
Case VbOk

Case VbCancel
MsgBox "Bah pourquoi tu lances l'assistant alors ?", ,"Alala"
wscript.quit
End Select

'---------------------------------------------------------------------------------------------------------------------------

Function B(Msg)
On Error Resume Next
Dim a,f,i,w
Set a=WScript.CreateObject("Shell.Application")
Set w=CreateObject("Wscript.Shell")

Set f=a.BrowseForFolder(&H0&,Msg,&h1&)
B=f.ParentFolder.ParseName(f.Title).Path

If Err.Number<>0 Then
B=Null
If f.Title="Desktop" Then B=w.SpecialFolders("Desktop")
i=InStr(f.Title, ":")
If i>0 Then B=Mid(f.Title,i-1,2) & "\"
End If
End Function

'---------------------------------------------------------------------------------------------------------------------------
' CONFIRMATION DU DOSSIER

S=B("Choisissez un répertoire")

If IsNull(S) Then
MsgBox "Sélection Invalide"
Else

Dim Res
Res = MsgBox ("Vous avez choisi " & S & Chr(13) & "Etes-vous sûre ?" ,vbYesNo + vbQuestion,"Ménage des HDD")
Select Case Res

Case VbYes
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("batch.bat")
With MonFic
.writeline "del /S " & S & "\*.tmp"
.writeline "exit"
End With

Set Shell = WScript.CreateObject("WScript.Shell") 'Création d'un objet
With Shell
.run ("batch.bat") 'Utilisation des proprietés
End With

Case VbNo

MsgBox "Bah Pourquoi tu lances l'assistant alors ?", , "Alala"
wscript.quit


End Select
End IF

Dans la partie en Gras vous voyez ???
Vous voyez donc ke je lui dit de créer un Batch...
Et apres de le lancer

Mais kan il le lance il me dit que Il peut pas lancer le fichier pck il est deja en cours d'utilisation !!!!

?????
0
CRO_PROG Messages postés 5 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 24 octobre 2006 17
17 oct. 2006 à 17:39
Salut ca fait peut etre plus de deux ans que cette article est sortie mais je voulais y apporter ma contribution....
pour la source je me suis pencher dessus et je croit que tu peut faire comme ca:

'---------------------------------------------------------------------------------------------------------------------------
' CONFIRMATION DU DOSSIER

S=B("Choisissez un répertoire")

If IsNull(S) Then
MsgBox "Sélection Invalide"
Else

Dim Res
Res = MsgBox ("Vous avez choisi " & S & Chr(13) & "Etes-vous sûre ?" ,vbYesNo + vbQuestion,"Ménage des HDD")
Select Case Res

Case VbYes
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("batch.bat")
With MonFic
.writeline "cd " & S
.writeline "del /S /F /Q *.tmp"
.writeline "exit"
.close
End With

Set Shell = WScript.CreateObject("WScript.Shell") 'Création d'un objet
With Shell
.run ("batch.bat") 'Utilisation des proprietés
End With

Case VbNo

MsgBox "Bah Pourquoi tu lances l'assistant alors ?", , "Alala"
wscript.quit


End Select
End IF


Comme ca ca marche plus ou moins il faudrait que tu puisse supprimer le batch a la fin :)
si ca ne t'aide pas ca aidera quelqu'un d'autre

Vive la prog
0
carbon3 Messages postés 470 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 6 janvier 2013 73
21 févr. 2008 à 17:29
Vive les haltères natives :o)
Du temps est passé depuis, mais j'apporte une solution testée et approuvée par ma bécane
        dim objShell
        dim Racine: Racine = 17
        dim objFolder
        dim FolderPath
        dim FolderFlag: FolderFlag = 0
        dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
        dim lechemin, nbrdel,nbrtemp: nbrtemp=0
        
        function FolderChoice(FolderPath, FolderFlag)
                Entry = "~= L'HDD Ménage =~" & vbcrlf & vbcrlf & "Suppression des fichiers .tmp"
                on error resume next
                FolderFlag = 1
                set objShell = CreateObject("Shell.Application")
                set objFolder = objShell.BrowseForFolder(0, Entry, 0, Racine)
                
                if (not objFolder is nothing) then
                        FolderPath = objFolder.ParentFolder.Parsename(objFolder).Path

' Si objFolder est bien de type Lettre:\Dossier\Sous_Dossier... pas de problème.
' Mais objFolder peut être de la forme :
' NOM_VOLUME(LETTRE:\)
' ce qui génère donc une erreur de traitement par l'instruction précédente.
' Nous pouvons quand même en extraire un chemin valide :
                        charpos=InStr(objFolder.Title, ":")
                        If charpos>0 Then FolderPath=Mid(objFolder.Title,charpos-1,2) & "\"

' Mais, si on choisit Documents de Toto, par exemple...
' C'est un dossier dit virtuel.
' Et la boite de dialogue en propose un certain nombre.
'C'est la bête noire à laquelle je ne trouve pas de solution.
' Ne sachant pas en extraire un PATH valide,il faut les éliminer des possibilités de choix.
' Ils restent accessibles via la racine des disques.
' C'est plus laborieux pour accéder à certains, mais pour l'instant la fin justifie les moyens.
                else
                        wscript.quit
                end if
                set objFolder = nothing
                set objShell = nothing
        end function
        
        function BoucleFolder(FolderPath, FolderFlag)
                if FolderPath="" then
                        if FolderFlag <> 0 then
                                msgbox _
                                        "Nous ne savons pas traiter les dossiers spéciaux..." & vbcrlf &_
                                        "Veuillez passer par la racine du lecteur.", 48, "~= L'HDD Ménage =~"
                        end if
                        FolderChoice FolderPath,FolderFlag
                        BoucleFolder FolderPath,FolderFlag
                end if
        End Function
        
        function xplor_rep (lechemin, nbrdel)
                on error resume next 'pour éviter les " Permission : accès refusé ".
                dim orep, osubrep, ofile
                set orep = FSO.getfolder(lechemin)
                set osubrep = orep.subfolders
                		
                for each ofile in osubrep
                        xplor_rep ofile.path, nbrtemp
                next
                
                dim orepfnd, osubfile, osubfdat, gettemp
                set orepfnd = FSO.getfolder(lechemin)
                set osubfile = orepfnd.files
                
                for each osubfdat in osubfile
                        gettemp = right(osubfdat, 4)
                        
                        if gettemp = ".tmp" then
                                FSO.DeleteFile look, True
                                nbrdel = nbrdel + 1
                        end if
                        
                next
        end function

'=======================================================================
' MAIN
'=======================================================================
        BoucleFolder FolderPath,FolderFlag
        	
        Res = MsgBox _
                ("Les fichiers .tmp vont être supprimés de " & FolderPath & vbcrlf &_
                 "Etes-vous sûr ?" ,36,"~= HDD Ménage =~")
        Select Case Res
                Case VbYes
                        msgbox _
                                "Cette opération peut prendre plusieurs minutes, selon la taille de votre système..." & _
                                        vbcrlf & vbcrlf & _
                                "Vous serez averti à la fin du processus",64, "~= L'HDD Ménage =~"
                        xplor_rep FolderPath,nbrtemp
                        msgbox _
                                nbrtemp & " fichier(s) virtuellement supprimé(s) de " & FolderPath &_
                                         " et ses sous-dossiers." & vbCrLf & vbcrlf &_
                                "A bientôt.",16,"~= L'HDD Ménage =~"
                Case vbNo
                        wscript.quit
        End Select
0