Path d'un executable

mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006 - 17 mai 2006 à 10:14
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006 - 18 mai 2006 à 16:17
bonjour
est-ce-qu'il ya une fonction qui retourne le path d'un executable?
a propos , je travaille avec le vb.net.
Merci d'avance!!

23 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 mai 2006 à 10:32
Bonjour

Reflexion.Assembly.GetExecutingassembly().Location 'Nom exe+path

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006
17 mai 2006 à 10:49
salut Henry
j'ai essayé ta commande mais ça m'a rien donné.
ce ke je veux c'est d'obtenier le chemin d'un excecutable pour l'utiliser
comme parametre dans la commande shell.
merci d'avance
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 mai 2006 à 10:55
Bonjour

Une erreur ?
Rappel, je tape le code sans EDI, il peut y avoir des erreur de nom et de syntaxe.

AppPath=(new IO.FileInfo(Reflection.Assembly.GetExecutingAssembly().Location)).Directory.FullName

Sinon, MSDN, App.Path (il te donne une partie de la réponse, migration VB6 -> VB.NET).

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006
17 mai 2006 à 11:32
salut
vous m'avez mal compris.ta commande me retourne le chemin de mon projet .
JE vais te decrire mon travail.
il consiste appeler un excecutable(un application)par exemple : je vais appeler
le wordpad .
avec la commande sell je suis capable de realiser cette operation ainsi
shell("chemin de l'executable", AppWinStyle.NormalFocus)
je veux avoir une commande qui me retourne le chemin du wordpad sans taper son chemin manuellement.
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 13:28
tu t'es, dès le départ mal exprimée, ne stipulant pas qu'il s'agissait d'un exe externe
il est toujours dangereux de lancer des programmes ainsi, en se fiant simplement a leur noms....(cf chevaux de troie)

je me demande si Shell a besoin du chemin complet.....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006
17 mai 2006 à 14:31
oui shell a besoin du chemin complet
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 15:01
Tout est dans la doc ...

[...]If you do not know the path to the program, you can use the My.Computer.FileSystem.GetFiles Method to locate it. For example, you can call My.Computer.FileSystem.GetFiles("C:", True, "testFile.txt"), which returns the full path of every file named testFile.txt anywhere on drive C:\. [...]

j'ai lancé VB, tapé Shell ( et ce tip est apparu....

au pire, tu peux faire un Process.Start, pas besoin là du chemin complet

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006
17 mai 2006 à 17:02
salut
j'ai essayé avec ta commande mais ca n'as pas marché .
je travaille avec le vb.net
bye
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 17:44
Process.Start("wordpad")

ne fonctionne pas ?? faut commencer à t'inquiéter....
on parle bien de Visual Basic 2005 ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
17 mai 2006 à 19:25
Salut,

Si ça marche pas pour wordpad, effectivement, faut s'inquiéter !

Shell trouve le fichier très probablement uniquement si son répertoire est dans la variable d'environement path, dans le dossier courant, dans le dossier de l'exe... Mais s'il se trouve quelque part perdu dans "Mes documents " ou autre, shell ne le trouvera jamais.

Pour GetFiles, c'est très sympa, mais si le dur fait 160 Go, tu peux revenir dans une heure pour voire si la commande a trouvé le fichier...

Si tu est l'auteur de l'autre exe, tu devrais pouvoir mettre son chemin d'accès dans la base de registre à l'installation.

Si tu n'est pas l'auteur, tu peux chercher d'éventuelles traces de son chemin dans la base de registre. (Commande "executer", taper "regedt32", puis rechercher). Tu pourrais récupérer ses traces par la suite avec du code.

Renfield -> Pour l'appel par nom je te suis pas... Comment faire ? Vérifier la taille ? La version ? Cela peut être presque aussi facilement copier que le nom...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 22:52
GetFiles est indiqué par la doc.... faut avouer.... un peux extrème, quand même ^^


j'ai pas compris ta question rt15 ....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
17 mai 2006 à 23:03
Je cite ton premier message :

il est toujours dangereux de lancer des programmes ainsi, en se fiant simplement a leur noms....(cf chevaux de troie)

Je vois pas comment s'assurer qu'un exe est bien le bon. En fait si maintenant que je l'écrit. En vérifiant deux trois octets, pour limiter les risques. Mais j'était curieux de connaitre le fond de ta pensé. Je me vois pas vérifier notepad...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 23:31
je déconseille juste de lancer, dans un programme, directement   Shell("Notepad")


derrière, ca parcoure le rep de l'appli, pluis les dossiers des variables d'environnement....

qui empeche un virus/cheval de troie d'être mis dans ce repertoire, ou
dans un des repertoire du %PATH% et d'être executé a la place du
celebre editeur de texte ?


en lancant C:\Windows\Notepad.exe (attention, je ne dit absolument pas de mettre le chemin en dur ^^)

on est deja plus sur.... (rien n'emepche Notepad.exe d'avoir été remplacé...)


je prefere bien souvent lancer l'editeur de texte choisi par le user....

(en faisant, par exemple un ShellExecute sur le fichier texte, directement, sans préciser de programme)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 mai 2006 à 00:08
C'est bien vu ça. je vais m'en souvenir.
0
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006
18 mai 2006 à 08:42
je travaille avec le .net
!!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 mai 2006 à 08:51
oui.... on en doute nullement


Process.Start est du .Net également (2005)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 mai 2006 à 10:05
Tu peux nous donner le chemin de l'exe que tu essais de lancer lorsque la commande ne marche pas ?
0
mayssa_kh3 Messages postés 28 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 2 juin 2006
18 mai 2006 à 10:23
Salut
le chemin est :
Shell("C:\Program Files\Ethereal\ethereal.exe", AppWinStyle.NormalFocus)
Merci
!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 mai 2006 à 10:45
et bien c'est chouette, tu as le chemin complet ^^
si le fichier pointé existe, et que tu y a accès, il n'y a aucune raison que tu ne puisse le lancer...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 mai 2006 à 12:30
Si tu souhaite distribuer une appli ayant la capacité de lancer cet
executable (Un sniffer en l'occurence), tu peux déjà te ruer sur la
variable d'environement ProgramFiles, qui renvoie par exemple  C:\Program Files.


Ensuite, tu complète avec \Ethereal\ethereal.exe et tu le balance sur ta commande.


Program Files étant l'emplacement le plus logique, ça devrait marcher pour pour bon nombre d'utilisateurs.


Si ça marche pas, tu peux lancer les commandes de recherche situées
plus haut, ou demander à l'utilisateur le chemin du fichier (S'il
utilise un sniffer, il devrait savoir ou il l'a mis...)


Si tu veux travailler plus finement, comme je l'ai dit plus haut, tu
dois regarder si cette appli met son chemin d'une manière ou d'une
autre dans la base de registre.


Fait une recherche de \ethereal par
exemple. Il y a pas mal d'appli qui mette le chemin d'accès d'un
fichier de désinstallation du programme qui est appelé lorsque l'on
clique sur supprimer dans ajout/suppression de programme.
(Attention, ce n'est pas parcequ'il est dans cette liste que le chemin
d'un fichier de désinstallation est dans la base de regsitre).
0
Rejoignez-nous