EXECUTER UN FICHIER SANS DONNER LE CHEMIN DE L'APPLICATION

Messages postés
10
Date d'inscription
lundi 22 avril 2002
Statut
Membre
Dernière intervention
22 juillet 2002
- - Dernière réponse : Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
- 23 mai 2002 à 01:12
bonjour

j'ai vu plusieurs fois sur ce site, que pour lancer une application externe à votre programme vous utilisez la fonction shell(..), le problème est qu'il faut connaitre l'emplacement de l'appication!!

j'aimerais savoir s'il est possible de lancer un document (par exemple en fichier txt) sans avoir à donner le chemin de l'application notepad.exe
mais uniquement en connaissant le chemin global par exemple: c:\mon_appli\fichier.txt

merci d'avance
Afficher la suite 

1 réponse

Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
0
Merci
Salut

Effectivement, il y a une API qui permet d'ouvrir un fichier directement avec le programme lié (Ex : *.txt avec le notepad...)
Essaye ca:

Const SEE_MASK_INVOKEIDLIST = &HC
Const SEE_MASK_NOCLOSEPROCESS = &H40
Const SEE_MASK_FLAG_NO_UI = &H400
Private Type SHELLEXECUTEINFO
    cbSize As Long
    fMask As Long
    hwnd As Long
    lpVerb As String
    lpFile As String
    lpParameters As String
    lpDirectory As String
    nShow As Long
    hInstApp As Long
    lpIDList As Long
    lpClass As String
    hkeyClass As Long
    dwHotKey As Long
    hIcon As Long
    hProcess As Long
End Type
Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long
Sub OpenFile(FileName As String, OwnerhWnd As Long)
    Dim SEI As SHELLEXECUTEINFO
    Dim ret As Long
    With SEI
        .cbSize = Len(SEI)
        .fMask = SEE_MASK_NOCLOSEPROCESS Or _
         SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
        .hwnd = OwnerhWnd
        .lpVerb = vbNullChar
        .lpFile = FileName
        .lpParameters = vbNullChar
        .lpDirectory = vbNullChar
        .nShow = 0
        .hInstApp = 0
        .lpIDList = 0
    End With
    ret = ShellExecuteEX(SEI)
End Sub
Private Sub Form_Load()
    OpenFile "c:\config.sys", Me.hwnd
End Sub


A+