Existe-t-il un moyen de spécifier un répertoire de travail (idem 'Démarrer dans' des raccourcis) au lancement d'une appli avec la commande Shell ?
Pas avec la commande shell, mais avec l'api ShellExecute : http://minilien.com/?LkDqLeX8Kd
A+, JP.
-- Société TRILOGIX - Solutions alternatives http://www.trilogix.fr/ Pour m'écrire, enlever le "nospam" dans l'adresse.
Jacques93
Bonjour Jeff, Jeff a écrit :
Bonjour à tous,
Existe-t-il un moyen de spécifier un répertoire de travail (idem 'Démarrer dans' des raccourcis) au lancement d'une appli avec la commande Shell ?
Tu peux faire un ChDir avant la commande Shell
ChDir "C:" Shell "cmd.exe"
Cependant, sous 2000/XP cela n'est opérationnel qu'avec certains programmes, NotePad s'ouvre toujours dans 'Mes Documents', MsPaint dans 'Mes Images', etc... liés aux CSIDL : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
Quand à Word ou Excel, etc ils ont chacun leur répertoire par défaut.
La méthode indiquée par Jean-Pierre Thomasset, bien que très utile dans bien des cas, suppose que l'on veuille ouvrir un fichier, le paramètre 'principal' de l'API ShellExecute étant un nom de fichier, et non une application. L'application lancée dependra de l'association faite sur une extension de fichier, et pourra donc être différente selon les machines. Par exemple, un .bmp pourra être ouvert avec MsPaint sur une machine ou Paint Shop Pro, ou une autre appli de dessin.
-- Cordialement,
Jacques.
Bonjour Jeff,
Jeff a écrit :
Bonjour à tous,
Existe-t-il un moyen de spécifier un répertoire de travail (idem 'Démarrer
dans' des raccourcis) au lancement d'une appli avec la commande Shell ?
Tu peux faire un ChDir avant la commande Shell
ChDir "C:"
Shell "cmd.exe"
Cependant, sous 2000/XP cela n'est opérationnel qu'avec certains
programmes, NotePad s'ouvre toujours dans 'Mes Documents', MsPaint dans
'Mes Images', etc... liés aux CSIDL :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
Quand à Word ou Excel, etc ils ont chacun leur répertoire par défaut.
La méthode indiquée par Jean-Pierre Thomasset, bien que très utile dans
bien des cas, suppose que l'on veuille ouvrir un fichier, le paramètre
'principal' de l'API ShellExecute étant un nom de fichier, et non une
application. L'application lancée dependra de l'association faite sur
une extension de fichier, et pourra donc être différente selon les
machines. Par exemple, un .bmp pourra être ouvert avec MsPaint sur une
machine ou Paint Shop Pro, ou une autre appli de dessin.
Existe-t-il un moyen de spécifier un répertoire de travail (idem 'Démarrer dans' des raccourcis) au lancement d'une appli avec la commande Shell ?
Tu peux faire un ChDir avant la commande Shell
ChDir "C:" Shell "cmd.exe"
Cependant, sous 2000/XP cela n'est opérationnel qu'avec certains programmes, NotePad s'ouvre toujours dans 'Mes Documents', MsPaint dans 'Mes Images', etc... liés aux CSIDL : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
Quand à Word ou Excel, etc ils ont chacun leur répertoire par défaut.
La méthode indiquée par Jean-Pierre Thomasset, bien que très utile dans bien des cas, suppose que l'on veuille ouvrir un fichier, le paramètre 'principal' de l'API ShellExecute étant un nom de fichier, et non une application. L'application lancée dependra de l'association faite sur une extension de fichier, et pourra donc être différente selon les machines. Par exemple, un .bmp pourra être ouvert avec MsPaint sur une machine ou Paint Shop Pro, ou une autre appli de dessin.
-- Cordialement,
Jacques.
Jean-Pierre Thomasset
Jacques93 wrote:
Bonjour Jeff,
Tu peux faire un ChDir avant la commande Shell
ChDir "C:" Shell "cmd.exe"
Attention, cette commande change le répertoire, mais pas le lecteur en cours...
Cependant, sous 2000/XP cela n'est opérationnel qu'avec certains programmes, NotePad s'ouvre toujours dans 'Mes Documents', MsPaint dans 'Mes Images', etc... liés aux CSIDL : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
C'est vrai que cela dépend pas mal du programme qui est lancé : le programme est libre d'utiliser ou non le chemin en cours. (Pour info, chez moi notepad me propose toujours le chemin du dernier fichier ouvert.)
Quand à Word ou Excel, etc ils ont chacun leur répertoire par défaut.
La méthode indiquée par Jean-Pierre Thomasset, bien que très utile dans bien des cas, suppose que l'on veuille ouvrir un fichier, le paramètre 'principal' de l'API ShellExecute étant un nom de fichier, et non une application. L'application lancée dependra de l'association faite sur une extension de fichier, et pourra donc être différente selon les machines. Par exemple, un .bmp pourra être ouvert avec MsPaint sur une machine ou Paint Shop Pro, ou une autre appli de dessin.
Bon, c'est vrai, ce n'est pas prévu pour :). Toutefois on peux lancer à peu près n'importe quel programme avec la commande shellexecute. Un exemple :
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 Private Const SW_SHOWNORMAL = 1
Private Sub Command1_Click() ShellExecute Me.hwnd, "Open", "monapp.exe", "", "c:temp", SW_SHOWNORMAL End Sub
En dernier recours, il ne reste que la fonction CreateProcess.
A+, JP.
-- Société TRILOGIX - Solutions alternatives http://www.trilogix.fr/ Pour m'écrire, enlever le "nospam" dans l'adresse.
Jacques93 wrote:
Bonjour Jeff,
Tu peux faire un ChDir avant la commande Shell
ChDir "C:"
Shell "cmd.exe"
Attention, cette commande change le répertoire, mais pas le lecteur en
cours...
Cependant, sous 2000/XP cela n'est opérationnel qu'avec certains
programmes, NotePad s'ouvre toujours dans 'Mes Documents', MsPaint dans
'Mes Images', etc... liés aux CSIDL :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
C'est vrai que cela dépend pas mal du programme qui est lancé : le
programme est libre d'utiliser ou non le chemin en cours.
(Pour info, chez moi notepad me propose toujours le chemin du dernier
fichier ouvert.)
Quand à Word ou Excel, etc ils ont chacun leur répertoire par défaut.
La méthode indiquée par Jean-Pierre Thomasset, bien que très utile dans
bien des cas, suppose que l'on veuille ouvrir un fichier, le paramètre
'principal' de l'API ShellExecute étant un nom de fichier, et non une
application. L'application lancée dependra de l'association faite sur
une extension de fichier, et pourra donc être différente selon les
machines. Par exemple, un .bmp pourra être ouvert avec MsPaint sur une
machine ou Paint Shop Pro, ou une autre appli de dessin.
Bon, c'est vrai, ce n'est pas prévu pour :). Toutefois on peux lancer à
peu près n'importe quel programme avec la commande shellexecute. Un
exemple :
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
Private Const SW_SHOWNORMAL = 1
Private Sub Command1_Click()
ShellExecute Me.hwnd, "Open", "monapp.exe", "", "c:temp",
SW_SHOWNORMAL
End Sub
En dernier recours, il ne reste que la fonction CreateProcess.
A+,
JP.
--
Société TRILOGIX - Solutions alternatives
http://www.trilogix.fr/
Pour m'écrire, enlever le "nospam" dans l'adresse.
Attention, cette commande change le répertoire, mais pas le lecteur en cours...
Cependant, sous 2000/XP cela n'est opérationnel qu'avec certains programmes, NotePad s'ouvre toujours dans 'Mes Documents', MsPaint dans 'Mes Images', etc... liés aux CSIDL : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp
C'est vrai que cela dépend pas mal du programme qui est lancé : le programme est libre d'utiliser ou non le chemin en cours. (Pour info, chez moi notepad me propose toujours le chemin du dernier fichier ouvert.)
Quand à Word ou Excel, etc ils ont chacun leur répertoire par défaut.
La méthode indiquée par Jean-Pierre Thomasset, bien que très utile dans bien des cas, suppose que l'on veuille ouvrir un fichier, le paramètre 'principal' de l'API ShellExecute étant un nom de fichier, et non une application. L'application lancée dependra de l'association faite sur une extension de fichier, et pourra donc être différente selon les machines. Par exemple, un .bmp pourra être ouvert avec MsPaint sur une machine ou Paint Shop Pro, ou une autre appli de dessin.
Bon, c'est vrai, ce n'est pas prévu pour :). Toutefois on peux lancer à peu près n'importe quel programme avec la commande shellexecute. Un exemple :
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 Private Const SW_SHOWNORMAL = 1
Private Sub Command1_Click() ShellExecute Me.hwnd, "Open", "monapp.exe", "", "c:temp", SW_SHOWNORMAL End Sub
En dernier recours, il ne reste que la fonction CreateProcess.
A+, JP.
-- Société TRILOGIX - Solutions alternatives http://www.trilogix.fr/ Pour m'écrire, enlever le "nospam" dans l'adresse.
Jacques93
Bonjour Jean-Pierre Thomasset, Jean-Pierre Thomasset a écrit :
ChDir "C:" Shell "cmd.exe"
Attention, cette commande change le répertoire, mais pas le lecteur en cours...
Exact, donc rectification :
ChDrive "Z:" ChDir "Toto"
[...]
C'est vrai que cela dépend pas mal du programme qui est lancé : le programme est libre d'utiliser ou non le chemin en cours. (Pour info, chez moi notepad me propose toujours le chemin du dernier fichier ouvert.)
Exact, chez moi aussi, répondu trop vite :-( Ce qui pourrait se comprendre si on fait Démarrer => Exécuter => Notepad.exe. Mais il semble qu'il ignore totalement le paramètre 'Démarrer dans' des raccourcis.
En dernier recours, il ne reste que la fonction CreateProcess.
Ne crois tu pas que l'on retomberai sur les comportements décrits précedemment en fonction de tel ou tel programme ?
-- Cordialement,
Jacques.
Bonjour Jean-Pierre Thomasset,
Jean-Pierre Thomasset a écrit :
ChDir "C:"
Shell "cmd.exe"
Attention, cette commande change le répertoire, mais pas le lecteur en
cours...
Exact, donc rectification :
ChDrive "Z:"
ChDir "Toto"
[...]
C'est vrai que cela dépend pas mal du programme qui est lancé : le
programme est libre d'utiliser ou non le chemin en cours.
(Pour info, chez moi notepad me propose toujours le chemin du dernier
fichier ouvert.)
Exact, chez moi aussi, répondu trop vite :-(
Ce qui pourrait se comprendre si on fait Démarrer => Exécuter =>
Notepad.exe. Mais il semble qu'il ignore totalement le paramètre
'Démarrer dans' des raccourcis.
En dernier recours, il ne reste que la fonction CreateProcess.
Ne crois tu pas que l'on retomberai sur les comportements décrits
précedemment en fonction de tel ou tel programme ?
Bonjour Jean-Pierre Thomasset, Jean-Pierre Thomasset a écrit :
ChDir "C:" Shell "cmd.exe"
Attention, cette commande change le répertoire, mais pas le lecteur en cours...
Exact, donc rectification :
ChDrive "Z:" ChDir "Toto"
[...]
C'est vrai que cela dépend pas mal du programme qui est lancé : le programme est libre d'utiliser ou non le chemin en cours. (Pour info, chez moi notepad me propose toujours le chemin du dernier fichier ouvert.)
Exact, chez moi aussi, répondu trop vite :-( Ce qui pourrait se comprendre si on fait Démarrer => Exécuter => Notepad.exe. Mais il semble qu'il ignore totalement le paramètre 'Démarrer dans' des raccourcis.
En dernier recours, il ne reste que la fonction CreateProcess.
Ne crois tu pas que l'on retomberai sur les comportements décrits précedemment en fonction de tel ou tel programme ?
-- Cordialement,
Jacques.
Jeff
Merci
Je vais examiner vos solutions...
Jeff
"Jeff" a écrit dans le message de news:
Bonjour à tous,
Existe-t-il un moyen de spécifier un répertoire de travail (idem 'Démarrer dans' des raccourcis) au lancement d'une appli avec la commande Shell ?
Merci
Jeff
Merci
Je vais examiner vos solutions...
Jeff
"Jeff" <contact@herakles.org> a écrit dans le message de news:
exJusILyFHA.460@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
Existe-t-il un moyen de spécifier un répertoire de travail (idem 'Démarrer
dans' des raccourcis) au lancement d'une appli avec la commande Shell ?