Shell

Signaler
Messages postés
12
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
9 juillet 2011
-
Messages postés
12
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
9 juillet 2011
-
bonjour,

Sous Excel en utilisant une macro il est possible de lancer différentes applications de types : Shell ("winword.exe") ou Shell ("outlook.exe")etc... Existe t'il une commande similaire dans une application VB ? En fait je souhaite lancer une application sans en donner le chemin "c:\monappli.exe", ce que l'on fait avec ShellExecute en api.

Merci...

10 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu as tout autant Shell

après à avoir sir ton appli se trouve dans le %Path% ou non


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
12
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
9 juillet 2011

Merci Renfield, mais je voulais vraiment éviter cette manip, afin que mon appli s'adapte à n'importe quelle destination dossier.

Jeth
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
y'a pas de miracle.
ton appli ne sera pas trouvée par magie...

si ton appli s'installe et marque son emplacement dans la base de registres, tu pourrais retrouver ce répertoire en lisant cette dernière.

ainsi tu pourrais lancer ton application où qu'elle ait été installée

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Je pense savoir ce que tu veux dire.

Par exemple ouvrir un fichier PDF sans te soucier de l'endroit ou se trouve le programme ca existe cette commande, il y a je crois shellexecute('open' ou 'print' et le nom du fichier mais je t'avoue ne plus trop savoir si c'est du VBA ou VB.NET et de toute la syntace. Au

A tout hasard j'ai ca dans un de mes programmes qui ouvre une page web

System.Diagnostics.Process.Start(string)

ou aussi ca dans du vba :

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

ShellExecute x, "print", NomFichier, "", "", 1

pour que ca fonctionne il faut que l'extension du fichier soit relier à un programme sinon ca ne marchera pas avant le lancement de ton programme, pour un PDF ou une page WEB ca devrait pas poser de problème ou un .doc enfin les extensions les plus courues.



bidouille007
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
"open" plutot, sinon ca lance la commende d'impression si celle ci est renseignée dans la registry^^


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
12
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
9 juillet 2011

merci pour votre aide.

jeth
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
si ton problème est résolu sympa de cocher la réponse acceptée

bidouille007
Messages postés
12
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
9 juillet 2011

bon pour solutionner mon problème, je pars sur une solution pas très pro mais qui traite mon souci. J'installe le fichier classeur1.xls sur mon dossier d'installation et j'utilise le code suivant :
Dim apExcel As Variant
Set apExcel = CreateObject("excel.application")
With apExcel
.Visible = True
.Workbooks.Open App.Path & "\classeur1.xls"

End With

(A défault de trouver mieux)

jeth
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Ta solution ne marchera que pour un fichier Excel je croyais que tu voulais quelque chose de plus généraliste

bidouille007
Messages postés
12
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
9 juillet 2011

bidouille mon appli est orientée ms office pour word et pp j'utilise :

Dim DocWord As Word.Document
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True

Pour le reste tu as raison, je cherche toujours.

jeth