Probleme dans le lancement d'application

Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006 - 15 avril 2004 à 20:01
cs_BiSi Messages postés 37 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 17 avril 2004 - 15 avril 2004 à 23:17
Bon voila j'ai 2 questions:

-quand j'utilise"shell" pour lancer une application à partir de mon programme ça marche mais ça se lance en mode reduit, dans la barre des taches.

-pour lancer un txt je met ça: call shell NOTEPAD.exe ("c:\Program Files\MonDossier\LisezMoi.txt")

mais je voudrai pouvoir eviter le C:\Program Files parce que tout le monde installe pas sur C:, et si c'est la cas, le bouton marche pu.

please help... :)

14 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
15 avril 2004 à 20:22
Salut,

Pour la façon dont se lance ton appli par le shell, tout est dans l'aide de VB. Par défaut c en réduit.

pour le fichier que tu veux ouvrir avec notepad, tu peux mettre une variable.

Par ex

Dim Ret
Dim fichier as string

fichier = chemin+nom du fichier

Ret = Shell("C:\WINDOWS\notepad.exe " & fichier, 3)

l'appli s'affiche en max et a le focus.
s'il trouve pas, ret =0 sinon c son id.

Reste plus qu'à jouer avec les on error ou à inclure une recherche du fichier sur le disque.

Cordialement

CanisLupus
0
cs_BiSi Messages postés 37 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 17 avril 2004
15 avril 2004 à 20:29
'lut

Bon alors pour l'état de lancement par shell, c'est le deuxième argument (oprionnel) de cette comande.
C'est à dir que pour lancer le notapad disons "normalement", tu mets:
Call Shell "Notepad.exe", vbnormalfocus


Ensuite pour le fichier texte, si j'ai bien compris, tu veus ouvrir un fichier texte se trouvant dans le même répertoire que l'application lancée. Si c'est ca, alors tu peus faire comme ceci:

Private Sub xxxx()
    Shell PathSlash(App.Path) & "LisezMoi.txt", vbNormalFocus
End Sub

Function PathSlash(Path As String)
    PathSlash = Path
    If Right(PathSlash, 1) <> "" Then PathSlash = PathSlash & ""
End Function


ou app.path contient le chemain complet de l'application visual basic
et ou PathSlash est juste une petite fonction pour ajouter le "" entre le fichier et le répertoire s'il n'est pas présent.

Voilà, j'espère que ca t'aidera, bon courage

.oO( BiSi )Oo.
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
15 avril 2004 à 20:33
salut

tu peux faire simplement :

shell "notepad.exe " & nomdufichier$, vbmaximized

ca va t'ouvrir le fichier désigné par la chaine de caracteres nomdufichier$ dans notepad en agrandi

voila

ShareVB
0
cs_BiSi Messages postés 37 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 17 avril 2004
15 avril 2004 à 20:34
arf j'ai oublié le notepad :blush)

Private Sub xxxx()
    Shell "notepad.exe """ & PathSlash(App.Path) & "VBEXT.SRG""", vbNormalFocus
End Sub


désolé, en plus CanisLupus m'a devancé lol

.oO( BiSi )Oo.
0

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

Posez votre question
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 20:41
Heu bon merci, j'ai vais essayer de traduire tout ça en format "mon language de mec qui y connais rien" pi je vais voir si ça marche :) merci a tous
0
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 20:54
heu bon j'ai un peu de mal lol, en plus j'ai pas l'aide VB elle marche pas y'a un truc pas installé :( voila ce que j'ai:

Call Shell("NOTEPAD.EXE c:\Program Files\Ive Descriptif\LisezMoi.txt")

ce que j'essai d'avoir c cette formule mais que ça se lance pas en reduit, et que si qql a installer sur un disque D: ça lance quand meme le fichier quand on appuis sur le bouton...
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
15 avril 2004 à 21:22
Bon, d'abord, à la place de :

Call Shell("NOTEPAD.EXE c:\Program Files\Ive Descriptif\LisezMoi.txt")

tu mets :

Call Shell("NOTEPAD.EXE c:\Program Files\Ive Descriptif\LisezMoi.txt",3)

résumé de la valeur du param :
0 = La fenêtre est masquée et activée.
1= La fenêtre est activée et rétablie à sa taille et à sa position d'origine.
2 =La fenêtre est affichée sous forme d'icône et activée.
3 =La fenêtre est agrandie et activée.
4 =La fenêtre est rétablie à sa taille et à sa position les plus récentes. La fenêtre active reste active.
6 =La fenêtre est affichée sous forme d'icône. La fenêtre active reste active.

Et pis, à la place d'un call, tu mets

ret=Shell("NOTEPAD.EXE c:\Program Files\Ive Descriptif\LisezMoi.txt",3)

Comme g écris + haut, ret est <>0 si le fichier est au bon endroit, sinon, tu teste un autre endroit.

ret=Shell("NOTEPAD.EXE d:\Ive Descriptif\LisezMoi.txt",3)

etc ... mais là, c une autre histoire de savoir où l'utilisateur a installé ton appli. Comme l'a écrit Bisi, si ton fichier txt est dans le répertoire de ton appli, le mieux c :

ret=Shell("NOTEPAD.EXE " & app.path & "\LisezMoi.txt",3)

dans ce cas, le ret, c juste pour ne pas planter l'appli si ton utilisateur a supprimé le LisezMoi.txt.

Cordialement, bon prog

CanisLupus
0
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 21:55
bon pour l'affichage de la fenetre c ok merci. pour

ret=Shell("NOTEPAD.EXE " & app.path & "\LisezMoi.txt",3)

ça m'affiche bien le fichier mais comme dans app.path j'ai :

c:\program Files\Ive Descriptif

si c sur d: ben ça s'affiche pu...
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
15 avril 2004 à 22:12
Bon, on résume, tu me dis si g bien compris.

Dans ton appli, tu veux faire afficher un LisezMoi.txt qui, normalement doit se trouver dans le même répertoire que ton appli.

Là-dessus, un utilisateur peut l'installer ailleurs que là où tu l'as prévu (normal).

Donc, si tu utilises app.path (qui est le répertoire où est installée l'appli) ça ne doit poser aucun problème car app.path contiendra le nom du rep où l'exe se trouve.

Mais, si je comprend bien, tu fais tes tests comme si c'était installé sur c: mais en collant le txt ailleurs (sur d:). Là ça ne peut pas marcher.

Fais une install ailleurs que sur c:program files ..... et tu verras que ça fonctionnera aussi.

Cordialement

CanisLupus
0
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 22:15
j'ai 2 pc le prog est installé sur c: sur l'un et d: sur l'autre.
mais dans app.path je met c:\Program Files\Ive Descriptif\ c peut etre ça qui va pas non?
0
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 22:28
Autant pour moi, je réflechi pas. C bon j'ai reussi, il fallai metre: \Program Files\Ive Descriptif en app.path et non avec C:, ou juste \Ive Descriptif

je vous remerci à tous pour votre aide plus que precieuse.

Amicalement Tar
0
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 22:42
hum, désolé lol mais j'ai une autre formule a qui je foudrai appliquer le truc pour c: ou d: c'est celle la:

Shell ("c:\Program Files\Ive Descriptif\MAJ.exe"), vbNormalFocus

ça doit donner quoi pour que ça ressemble a ce qu'on fesai au dessu?
0
Taraldarion Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 10 janvier 2006
15 avril 2004 à 22:58
bon ben non.. a force d'essai erreur j'ai fini par trouver la bonne syntaxe. merci à tous
0
cs_BiSi Messages postés 37 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 17 avril 2004
15 avril 2004 à 23:17
Tant mieux alors. De toute facon, y a pas 36 solutions, faut perceverer lol ;-)

bon code

.oO( BiSi )Oo.
0
Rejoignez-nous