[VB6] ShellExecute [Résolu]

cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 14 sept. 2005 à 17:51 - Dernière réponse : cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention
- 14 sept. 2005 à 19:40
Salut....


Je me suis fais un programme pour ouvrir des fichiers (bon je ne sais pas quel autre mot utilisé pour dire Ouvrir un Fichier... hum exécuter un fichier enfin)

Je rentre dans un textbox le texte suivant 32399 et le programme exécute le fichier 32399.dgn..

Voici le code que j'utilise...
AU DÉMARAGE
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1

Dans le cmdOuvrir
Fichier1 = ShellExecute(Me.hWnd, "open", "M:\Vision97\PLAN" & strcontrat & ".dgn", vbNullString, "", SW_SHOWNORMAL)

Jusqu'ici ca va tres bien.... Ca exécute le fichier et MicroStation s'ouvre avec le fichier correspondant au texbox.

Le problème....

Quand j'execute Microstation (sur mon bureau je ne parle pas de code VB), je me suis créé un racourcis sur le bureau et j'ai modifier la Cible (Bouton droit de souris sur l'icîone Propriété Onglet Raccouri)
J'ai mis comme cible C:\WIN32APP\ustation\ustation.exe -wdodbc -wuvision

Comment est-il possible de coder en VB6, de prendre ce racroucis pour éxécuter le fichier que je veux exécuter à partir de mon programme VB

Le bug c'est que si j'inscrit 32399 (Mon programme exécutera le fichier 32399.dgn mais avec ce lien C:\WIN32APP\ustation\ustation.exe

Il ne prend pas en compte c'est 2 éléments (-wdodbc -wuvision)
Afficher la suite 

5 réponses

cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 14 sept. 2005 à 18:38
+3
Utile
Salut, il faut coder :

ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", "M:\Vision97\PLAN" & strcontrat & ".dgn -wdodbc -wuvision", "", SW_SHOWNORMAL)

ou

ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\PLAN" & strcontrat & ".dgn", "", SW_SHOWNORMAL)

Les paramètres à passer à l'appli doivent se trouver à la position "lpParameters ". Il faut juste savoir dans quel ordre il faut les passer.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Cette réponse vous a-t-elle aidé ?  
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 14 sept. 2005 à 19:40
+3
Utile
Alors, je dirais :

If Dir("M:\Vision97\PLAN" & strcontrat & ".dgn") <> "" Then
Fichier1 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\PLAN" & strcontrat & ".dgn", "", SW_SHOWNORMAL)
ElseIf Dir("M:\Vision97\PLAN_2004" & strcontrat & ".dgn") <> "" Then
Fichier2 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\PLAN_2004" & strcontrat & ".dgn", "", SW_SHOWNORMAL)
ElseIf Dir("M:\Vision97\ARCHIVES_PLAN" & strcontrat & ".dgn") <> "" Then
Fichier3 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\ARCHIVES_PLAN" & strcontrat & ".dgn", "", SW_SHOWNORMAL)
End If

Il y a sans doute plus élégant mais si ça peut te dépanner.... pour l'instant.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Cette réponse vous a-t-elle aidé ?  
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 14 sept. 2005 à 18:08
0
Utile
Essaye comme ceci :



Fichier1 = ShellExecute(Me.hWnd, "open", "M:\Vision97\PLAN" &
strcontrat & ".dgn -wdodbc -wuvision", vbNullString, "",
SW_SHOWNORMAL)
Ou comme ceci :


Fichier1 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe M:\Vision97\PLAN" &
strcontrat & ".dgn -wdodbc -wuvision", vbNullString, "",
SW_SHOWNORMAL)

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 14 sept. 2005 à 19:05
0
Utile
Salut... meric pour la réponse...

J'ai juste un problème que je n'avais pas mentionné dans mon premier message....

Le Fichier (fichier que j'inscrit dans le textbox) peut se retrouver qu'une fois dans trois répertoire... Donc j'ai mis le code comme cela...

Fichier1 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\PLAN" & strcontrat & ".dgn", "", SW_SHOWNORMAL)

Fichier2 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\PLAN_2004" & strcontrat & ".dgn", "", SW_SHOWNORMAL)

Fichier3 = ShellExecute(Me.hWnd, "open", "C:\WIN32APP\ustation\ustation.exe", " -wdodbc -wuvision M:\Vision97\ARCHIVES_PLAN" & strcontrat & ".dgn", "", SW_SHOWNORMAL)



Donc j'ai un problème.... À l'exécution du programme (VB) toutes mes variables sont = à 42 (Fichier1, Fichier2 et Fichier3) et donc j'ai trois MicroStation qui s'éxeécute.. mais je veux seulement lui dire d'exécuter qu'une fois MicroStation et d'ouvrir la bon fichier....

Exist-il un facon pour régler mon problème ou bien je code quelque chose pour lui dire Si le fichier existe alors ouvre MicroStation ????

Merci d'avance
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 14 sept. 2005 à 19:18
0
Utile
salut,
dans ton Form_Load (ou ton Sub Main) : If App.PrevInstance Then End

PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.