Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
2 févr. 2007 à 18:14
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
5 févr. 2007 à 07:32
Bonjour à tous.
Je viens de créer une application pour executer et installer un programme après vérification d'un sérial. Ce dernier est un vérificateur de clé, il est censé aprés vérification de l'authenticité du sérial
lancer automatiquement les fichiers d'install qui seront contenus sur un cd. J'ai trouvé un code pour lancer les fichiers:
Dim proc As New Process
proc.StartInfo.FileName = "C:\...\...\..."
proc.Start()
Mais je me suis posé une question: Pour executer un fichier, il faut son chemin, or tout le monde n'a pas la meme lettre dans le chemin de lecteur cd non ???
Comment faire ???
Merci d'avance.
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 3 févr. 2007 à 14:24
Salut,
Essaies ce code pour voir, il fonctionne très bien chez moi
PS : il faut déclarer avant Imports System.IO
Voici le code :
Dim chemin As String = "setup.exe"
' Spécifier le chemin d'accès du fichier sans la lettre du lecteur
' Exemple : si le fichier à lancer c'est "X:\installation\setup.exe" où X est la lettre du lecteur inconnu
' il faut mettre dans chemin "installation\setup.exe"
Dim process As New Process ' Definit un nouveau process
For Each disque As String In Directory.GetLogicalDrives() ' Parcours toutes les disque logiques présent sur la machine
Dim D As New DriveInfo(disque) ' Déclaration et instanciation du lecteur pour obtenir des infos dessus
If D.DriveType = DriveType.CDRom Then ' Vrai si le disque est un CD-Rom
Try ' Try permet d'intercepter une erreur et permet de la traiter avec catch
If My.Computer.FileSystem.FileExists(disque + chemin) = True Then ' Test si le fichier existe
process.StartInfo.FileName = disque + chemin ' Définit le fichier à lancer
process.Start() ' Démarre le processus et donc lance le fichier
End If
Catch ex As Exception ' Catch permet de traiter une erreur s'il y en a une
MsgBox(ex.Message) ' Affiche un message à l'utilisateur du type d'erreur
End Try
End If
Next
End Sub
(Coloration syntaxique automatique par Kenji)
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 5 févr. 2007 à 06:20
Salut,
Généralement, voici où tu dois mettre Imports System.IO
Imports System.IO
Public Class Form1
End Class
Voilà c'est ici qu'il faut le mettre ( si tu comprends toujours pas je mettrais un bout de code pour une Form et tu verras où il se place) mais là normalement tu devrais comprendre...
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 2 févr. 2007 à 21:01
Ce code est pour VB6 et toi, tu es en .net, il afut donc modifier le type des variables passées à l'api
Par exemple, le Long devient Integer.
Ce code va te retourner la lettre du premier lecteur de type CDROM déclaré dans le système. Ca ne te donne pas explicitement la lettre du lecteur depuis lequel est executé ton appli.
Si dans la majorité des cas, un seul lecteur est installé, il peut exister des farfelus qui auront plusieurs lecteurs de cdrom dans leur machine. Et dans ce cas là, l'apli ne sera pas forcément executée depuis le premier lecteur.
C'est mon cas, 5 lecteurs cdrom, un physique, 4 virtuels et normalement mon lecteur physique devra apparaitre comme le second lecteur de cd (F:) car j'ai d'abord un lecteur virtuel (E:) pour contrer une appli qui va systématiquement chercher le disque justement sur le premier lecteur déclaré.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 2 févr. 2007 à 22:05
Essaye ce code :
Dim chemin As String = Application.ExecutablePath
Dim lettre As String = System.IO.Path.GetPathRoot(chemin)
lettre = lettre.Substring(0, lettre.IndexOf(System.IO.Path.VolumeSeparatorChar))
Console.WriteLine("Le chemin de
lancement de l'appli est {0}, et la lettre du lecteur est {1}", chemin, lettre)
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #