Nom du Repertoire non valide

nadriel Messages postés 5 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 5 juillet 2015 - Modifié par nadriel le 5/07/2015 à 17:09
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 7 juil. 2015 à 15:16
Bonjour,

Je bloque sur un petit bout de code qui est censé permettre de décompresser une archive en .rar pour cela j'ai trouvé ceci sur le net :

    Private Sub Unrar(ByVal filepath As String, ByVal workingDir As String)
        Dim objRegKey As RegistryKey
        objRegKey = Registry.ClassesRoot.OpenSubKey("WinRAR\Shell\Open\Command")

        Dim obj As Object = objRegKey.GetValue("")

        Dim objRarPath As String = obj.ToString()
        objRarPath = objRarPath.Substring(1, objRarPath.Length - 7)

        objRegKey.Close()

        Dim objArgs As String
        objArgs = " X " & " " & filepath & " " + " " + workingDir


        Dim objStartInfo As New ProcessStartInfo()
        objStartInfo.UseShellExecute = False
        objStartInfo.FileName = objRarPath
        objStartInfo.Arguments = objArgs
        objStartInfo.WindowStyle = ProcessWindowStyle.Hidden
        objStartInfo.WorkingDirectory = workingDir & ""

        Dim objPro As New Process()
        objPro.StartInfo = objStartInfo
        objPro.Start()

    End Sub


J'utilise donc cette procédure dans un bouton Histoire de la tester :

 Private Sub FlatButton4_Click(sender As Object, e As EventArgs) Handles FlatButton4.Click

        Unrar("C:\Users\Nadriel\AppData\Roaming\LauncherArma3\ModsDownload\", "C:\Users\Nadriel\AppData\Roaming\LauncherArma3\ModsDownload.rar")


    End Sub


mais cela me retourne l'erreur : Nom du répertoire non valide.
Débutant en VB je ne sais pas comment régler ce problème

Merci pour vos futurs réponses

Nadriel

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
5 juil. 2015 à 17:18
Sur quelle ligne ?
Quel est le contenu des variables de cette ligne ?
0
nadriel Messages postés 5 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 5 juillet 2015
5 juil. 2015 à 17:55
L'erreur ce provoque ligne 25

objPro.Start()

il a pour contenu : {System.Diagnostics.Process}

ObjStartInfo a comme contenu : {System.Diagnostics.ProcessStartInfo}

et comme argument : " X C:\Users\Nadriel\AppData\Roaming\LauncherArma3\ModsDownload\ C:\Users\Nadriel\AppData\Roaming\LauncherArma3\ModsDownload.rar"

en espérant ne pas avoir répondu a coté ^^

--
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
5 juil. 2015 à 20:13
Et que vaut : objRarPath ?
0
nadriel Messages postés 5 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 5 juillet 2015 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
5 juil. 2015 à 20:39
objRarPath = ""C:\Program Files (x86)\WinRAR\WinRAR.exe" "%1""
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
5 juil. 2015 à 21:59
Il faut que tu corrigescette valeur donc, car il va chercher à executer l'ensemble de objRarPath, et donc ne trouveras pas l'executable, il faut que tu ne gardes que "C:\Program Files (x86)\WinRAR\WinRAR.exe" (sans les ") pour la valeur.
0
nadriel Messages postés 5 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 5 juillet 2015 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
Modifié par nadriel le 5/07/2015 à 23:36
Ok, Merci !

je vais essayer de modifier ça, étant donnée que c'est du code copier collé je n'ai aucune idée de la provenance de ce "%1"

je vais chercher et je te tien au courant de l'évolution ;)

EDIT : C'est bon objRarPath a comme valeur
"C:\Program Files (x86)\WinRAR\WinRAR.exe"

mais quand tu dis sans les ( " ) tu veux dire tousse ou la c'est bon ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 6/07/2015 à 07:30
Bonjour, nadriel,
étant donnée que c'est du code copier collé je n'ai aucune idée de la provenance de ce "%1"

Lire ceci me déprime à un point que je ne saurais décrire .
Tu sais quoi, nadriel ? tu risques fort de copier/coller un jour des instructions malveillantes sans même être en mesure de te rendre compte des dégâts qu'elles pourraient générer sur ta machine ou des espions qu'elles y installeraient (ou des chevaux de Troie utilisables ultérieurement pour installer du pire encore)
En compilant ensuite puis exécutant ton appli, tu seras alors ton propre "bourreau" !!!
Ne prends pas mal cette remarque. Sa vocation n'est pas de se moquer, mais de t'alerter.

EDIT : dès lors que tu demandes de l'aide sur un/des forum(s) de développement, tu deviens parfaitement "repéré" comme étant susceptible de devenir une proie facile (qui va copier/coller/installer/exécuter) . Il est alors facile à toute âme mal intentionnée de "peser" tes carences et d'en profiter pour te faire faire très facilement toi-même sur ta machine (le code copié/collé sans le comprendre) ce qu'il ne peut faire à distance.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 juil. 2015 à 15:16
Bonjour

je n'ai pas compris pourquoi ces lignes
 Dim objRegKey As RegistryKey
objRegKey = Registry.ClassesRoot.OpenSubKey("WinRAR\Shell\Open\Command")

Dim obj As Object = objRegKey.GetValue("")

fonctionne ?
0
Rejoignez-nous