IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Executer une application a partir d'un formulaire [À faire]


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut Executer une application a partir d'un formulaire
    Bonjour a tous,

    Voila, j'ai creer sur un formulaire un bouton "AfficherImage" pour que quand on clique sur ce bouton Access ouvre le fichier image...

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Afficher_Image_Click()
    On Error GoTo Err_Afficher_Image_Click
     
        Dim stAppName As String
     
        stAppName = "Z:\duben\Mes documents\Mes images\roulage_01.jpg"
     
        Call Shell(stAppName, 1)
     
    Exit_Afficher_Image_Click:
        Exit Sub
     
    Err_Afficher_Image_Click:
        MsgBox Err.Description
        Resume Exit_Afficher_Image_Click
    End Sub
    le message d'erreur est "fichier introuvable"
    alors qu'il ai exactement là ou je l'indique...

    j'ai essayé de meme d'ouvrir un fichier word :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub OuvrirTexte_Click()
    On Error GoTo Err_OuvrirTexte_Click
     
        Dim stAppName As String
     
        stAppName = "Z:\duben\Mes documents\Mes images\roulage1.doc"
     
        Call Shell(stAppName, 1)
     
    Exit_OuvrirTexte_Click:
        Exit Sub
     
    Err_OuvrirTexte_Click:
        MsgBox Err.Description
        Resume Exit_OuvrirTexte_Click
    End Sub
    mais le msg d'erreur est different: "Argument ou Appel de procedure incorrect"

    Est ce que vous pourriez me dire d'ou ca vient???
    Merci!!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 92
    Points : 48
    Points
    48
    Par défaut Re: Executer une application a partir d'un formulaire
    Citation Envoyé par ibticeme
    Bonjour a tous,

    Voila, j'ai creer sur un formulaire un bouton "AfficherImage" pour que quand on clique sur ce bouton Access ouvre le fichier image...

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Afficher_Image_Click()
    On Error GoTo Err_AfficherImage_Click
     
        Dim stAppName As String
     
        stAppName = "Z:\duben\Mes documents\Mes images\roulage_01.jpg"
     
        Call Shell(stAppName, 1)
     
    Exit_AfficherImage_Click:
        Exit Sub
     
    Err_AfficherImage_Click:
        MsgBox Err.Description
        Resume Exit_AfficherImage_Click
    End Sub
    le message d'erreur est "fichier introuvable"
    alors qu'il ai exactement là ou je l'indique...

    j'ai essayé de meme d'ouvrir un fichier word :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub OuvrirTexte_Click()
    On Error GoTo Err_OuvrirTexte_Click
     
        Dim stAppName As String
     
        stAppName = "Z:\duben\Mes documents\Mes images\roulage1.doc"
     
        Call Shell(stAppName, 1)
     
    Exit_OuvrirTexte_Click:
        Exit Sub
     
    Err_OuvrirTexte_Click:
        MsgBox Err.Description
        Resume Exit_OuvrirTexte_Click
    End Sub
    mais le msg d'erreur est different: "Argument ou Appel de procedure incorrect"

    Est ce que vous pourriez me dire d'ou ca vient???
    Merci!!

    salam

    pour le dernier code
    change ta ligne et ecrit :
    stAppName = "winword Z:\duben\Mes documents\Mes images\roulage1.doc"

    en fait tu lui passe le programe ki va ouvrir le fichier
    pour le premier code ca me fai la meme erreur
    je regarde encore
    It's me !!

  3. #3
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Extrait de l'aide d'Access
    Syntaxe

    Shell(pathname[,windowstyle])

    La syntaxe de la fonction Shell comprend les arguments nommés suivants :


    pathname De type Variant (String). Nom du programme à exécuter, ainsi que tous les arguments ou paramètres de ligne de commande ; peut également préciser le répertoire ou dossier et le lecteur.
    Tu ne peux pas désigner directement un document et l'ouvrir avec la commande Shell.
    Quand tu double-clique sur un document dans l'explorateur Windows, l'explo windows va chercher dans la liste des applications celle qui correspond par défaut à l'extension (.jpg ou .doc) et va ensuite lancer une commande Shell complète. Exemple (à corrige selon la config de ta machine) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "C:\program files\Office\Office\MsWord.exe" "Z:\duben\Mes documents\Mes images\roulage1.doc"
    Le chemin et le nom de ton doc ne sont qu'un paramètre sur la ligne de commande d'ouverture de Word (le programme à exécuter).
    Donc, soit
    - tu complètes ta commande Shell comme ci dessus,
    - tu plonges dans la syntaxe de GetObject(), auquel tu peux indiquer un document et qui se dém...de avec
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé ce que tu me dis et ca m'ouvre bien word...
    PAr contre j'ai une autre erreur
    "Impossible d'ouvrir le document... etc ...."

    Tu sais desfois quand tu doubleclique sur un fichier word ca marche pas... il faut d'abord aller dans word puis faire ouvrir etc....
    Ben là ca me fait la meme chose...

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Papy Turbo


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "C:\program files\Office\Office\MsWord.exe" "Z:\duben\Mes documents\Mes images\roulage1.doc"
    Le chemin et le nom de ton doc ne sont qu'un paramètre sur la ligne de commande d'ouverture de Word (le programme à exécuter).
    Donc, soit
    - tu complètes ta commande Shell comme ci dessus,
    - tu plonges dans la syntaxe de GetObject(), auquel tu peux indiquer un document et qui se dém...de avec
    Etant donné que je travaille dans une entreprise je sais pas trop ou sont installés les applications...
    Je suis allée dans

    "C:\Programme Files\Microsoft Office\"

    et là j'ai pas de MsWord.exe J'ai tout plein de fichier ( dont l'application word) mais pas avec l'extension exe

    Je dois faire la meme chose pour le fichier image??

    MErci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par ibticeme
    Etant donné que je travaille dans une entreprise je sais pas trop ou sont installés les applications...
    Je suis allée dans

    "C:\Programme Files\Microsoft Office\"

    et là j'ai pas de MsWord.exe J'ai tout plein de fichier ( dont l'application word) mais pas avec l'extension exe

    Je dois faire la meme chose pour le fichier image??

    MErci

    pour word il faut taper winword


    tien fai un test, va ds demarer executer et tape winword puis tape entrer tu verra ce ke ca fai

    le fichier image ce depend avec kel appli tu veu le lancer
    It's me !!

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut

    pour word il faut taper winword


    tien fai un test, va ds demarer executer et tape winword puis tape entrer tu verra ce ke ca fai

    le fichier image ce depend avec kel appli tu veu le lancer

    J'ai essayé ce que tu me dis et ca m'ouvre bien word...

    Par contre j'ai une autre erreur
    "Impossible d'ouvrir le document... etc ...."

    Tu sais desfois quand tu doubleclique sur un fichier word ca marche pas... il faut d'abord aller dans word puis faire ouvrir etc....
    Ben là ca me fait la meme chose...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par ibticeme

    pour word il faut taper winword


    tien fai un test, va ds demarer executer et tape winword puis tape entrer tu verra ce ke ca fai

    le fichier image ce depend avec kel appli tu veu le lancer

    J'ai essayé ce que tu me dis et ca m'ouvre bien word...

    Par contre j'ai une autre erreur
    "Impossible d'ouvrir le document... etc ...."

    Tu sais desfois quand tu doubleclique sur un fichier word ca marche pas... il faut d'abord aller dans word puis faire ouvrir etc....
    Ben là ca me fait la meme chose...

    aie c paske tu utilise des application reseau .... je crois ke je suis coincé

    si ton document se trouve sur le serveur alors ouvre ta base access sur le serveur et non en local, c a d en utilisant access installer sur ton serveur

    et peut etre que ca marchera
    It's me !!

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par elkamaro

    aie c paske tu utilise des application reseau .... je crois ke je suis coincé

    si ton document se trouve sur le serveur alors ouvre ta base access sur le serveur et non en local, c a d en utilisant access installer sur ton serveur

    et peut etre que ca marchera
    ca veut dire quoi "ouvre ta base sur le serveur et non en local??"

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par ibticeme
    ca veut dire quoi "ouvre ta base sur le serveur et non en local??"

    ca veut dire k il fau ouvrir ta base avec le access du serveur (si access est installer dessus)

    sinon essai de faire un copier coller de ta base et colle la sur le c:\ pour eviter d etre en reseau



    salam lol
    It's me !!

  11. #11
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par elkamaro
    ca veut dire k il fau ouvrir ta base avec le access du serveur (si access est installer dessus)
    sinon essai de faire un copier coller de ta base et colle la sur le c:\ pour eviter d etre en reseau
    salam lol

    snif ca marche pas!!
    c'est pas juste...

    j'ai ouvert access qui est installé et essayé ca marche pas...
    j'ai copier coller ma base sur C: et ca marche pas...

    c le seul moyen???

  12. #12
    Membre du Club

    Inscrit en
    Juillet 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 34
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    si tu veux ouvrir un fichier Word depuis Access, utilise ce code (Automation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim wdApp as Word.Application
     
    Set wdApp = CreateObject ("Word.Application")
     
    With wdApp
      .Visible=True
      .Documents.Open "le path complet de ton fichier word"
    End With
     
    Set wdApp = nothing
    L'instruction VB Shell te permet de lancer un logiciel quelconque (et donc ceux qui ne gèrent pas l'Automation) mais une fois le logiciel démarré, aucun contrôle à distance n'est possible.

  13. #13
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par gripoil
    Bonjour,

    si tu veux ouvrir un fichier Word depuis Access, utilise ce code (Automation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim wdApp as Word.Application
     
    Set wdApp = CreateObject ("Word.Application")
     
    With wdApp
      .Visible=True
      .Documents.Open "le path complet de ton fichier word"
    End With
     
    Set wdApp = nothing
    L'instruction VB Shell te permet de lancer un logiciel quelconque (et donc ceux qui ne gèrent pas l'Automation) mais une fois le logiciel démarré, aucun contrôle à distance n'est possible.
    je dois le mettre ou ce code?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par ibticeme
    c le seul moyen???
    non ...

    Dim Myapp As Object
    Set MyXL = Getobject("c:\monFichier.doc")
    MyXL.Application.Visible = True


    fau ajouter le controle d erreur ou cas ou ton fichier n existe pas
    courageeeeeeee
    It's me !!

  15. #15
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub TestGetObject(CheminComplet As String)
    Dim O As Object
        'ouvrir le fichier
        Set O = GetObject(CheminComplet)
        'rendre l'application visible (GetObject l'ouvre, caché)
        O.Parent.Visible = True
    End Sub
    Cette sub marche bien pour ouvrir un document Word et la plupart des autres documents.
    Par contre, elle plante avec une image .jpg
    Parce que, d'une machine à l'autre, les images sont ouvertes avec des applications différentes.
    le résultat de GetObject, l'objet O, est complètement différent d'une application à l'autre.
    Il peut avoir une propriété Parent : c'est le cas d'un objet Word.Document
    C'est pas le cas pour un .jpg, sur mon poste !

    Je continue à chercher...
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 14
    Points
    14
    Par défaut
    Ouzis j'ai bien trouvé un truc mais c'est à améliorer.
    Il te faut cocher lé référence à Microsoft Scripting Runtime puis utiliser quelquechose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub OuvrirFichier(cheminFichier As String)
    Dim Wsh As Object, appExec As Object, extKey$, extProg$
    Dim fso As New Scripting.FileSystemObject
    Dim extension$, strCmd$
        extension = fso.GetExtensionName(cheminFichier)
        Set fso = Nothing
        Set Wsh = CreateObject("WScript.Shell")
        extKey = Trim(Wsh.RegRead("HKCR\\." & extension & "\\"))
        Debug.Print extKey
        On Error GoTo gest_err
        extProg = Wsh.RegRead("HKCR\\" & extKey & "\\shell\\open\\command\\")
        Debug.Print extProg
        strCmd = Replace(extProg, "%1", cheminFichier, , 1)
        Debug.Print strCmd
        On Error GoTo erreur_run_incompris
        Wsh.Run strCmd
        Set Wsh = Nothing
        Exit Sub
    gest_err:
        'Problème de lecture de la clé de registre
        Debug.Print Err.Number, Err.Description
        Err.Clear
        Exit Sub
    erreur_run_incompris:
    'Des fois ça plante et il faut utiliser la méthode Exec ???
        Debug.Print Err.Number, Err.Description
        Err.Clear
        On Error GoTo impossible
        Set appExec = Wsh.Exec strCmd
        Set Wsh = Nothing
        Exit Sub
    impossible:
    'Bon là rien n'a marché, à améliorer!!
        Debug.Print "Fatal : " & Err.Number & " : " & Err.Description
        Err.Clear
        Exit Sub
    End Sub
     
    Sub testFichier()
        Call OuvrirFichier("D:\temp\test\ttest\fade.gif")
    End Sub
    Voilà, bonne bourre.
    Si la pierre tombe sur l'oeuf, malheur à l'oeuf...
    Si l'oeuf tombe sur la pierre, malheur à l'oeuf...

  17. #17
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    C'est superbe, ça. Si ça marche ! Tu l'as testé ?
    Je vais le faire, mais pas aujourd'hui...
    Donc, à tout ceux qui veulent tester cette procédure, si y en a des problèmes avec, je propose qu'on les résolve ici, jusqu'à ce qu'on se fasse un 'Super Shell' aux petits oignons
    À +

    Le même, apèrs 15 minutes : chez moi, ça marche pas.
    C'est intéressant, mais, t'as raison, un peu foireux :
    On peut tester le code avec une référence (environnement VBA, Outils, références) à "Microsoft Scripting Runtime".
    Je conseille d'ajouter aussi (pour l'instant, c'est là que ça cafouille déjà) une 2ème référence à "Windows ScriptHost object Model". Cette autre référence va permettre de remplacer
    (objet non déterminé) par
    ce qui permet de déployer les listes déroulantes des propriétés et méthodes de Wsh, en tapant un point derrière...

    Bug #1 : Compile
    la ligne suivante ne compile pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set appExec =Wsh.Exec strCmd
    remplacée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        'Set appExec =
        Wsh.Exec strCmd
    On verra après si appExec sert à quelque chose ???

    Bug #2 : Exécution
    À partir de là, le code compile et roule OK, mais plante en ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        extKey = Trim(Wsh.RegRead("HKCR\\." & extension & "\\"))
    avec une erreur
    -2147024894 Erreur Automation
    Le fichier spécifié est introuvable.
    La commande n'arrive pas à lire le registre de windows (section HKEY CURRENT USER ?). Donc, faudra fouiller dans la doc de "Windows ScriptHost object Model", que j'ai rien sur mon poste -> balade à Seattle, sur le site MSDN.

    Rendez-vous dans quelque secondes, minutes ou mois...
    Mais qu'est-ce que le temps,
    qui file comme le vent,
    et rantanplan, planplan...
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 14
    Points
    14
    Par défaut
    Ok je crois qu'il faut que j'explique un peu cet embryon de procédure pour qu'il puisse évoluer.

    J'ai cherché dans l'aide du windows scripting host et sur l'excellent site de jcb s'il y avait une fonction du FileSystemObject qui permettait d'effectuer les actions définies sur les types de fichier dans la base de registre (et dans l'explorateur > outils>options des dossiers>Types de dossier).

    Je pensais bien trouver quelque chose dans le genre shellExec(nomFichier, Action), mais non, nada, niente.

    J'ai donc regardé la structure de la base de registre de mon windows 2000 et espionner les accès qui sont fait lors de la modification des actions sur les types de fichier.

    Windows 2000 regarde la valeur de la clé "HKEY_CLASSES_ROOT\[extension du fichier avec un point devant]\Default"
    (par exemple,"HKEY_CLASSES_ROOT\.txt\Default" ) et extirpe un espèce de progID du genre Word.Document ou CrimsonEditor.txt.

    En regardant toujours sous HKEY_CLASSES_ROOT sous la valeur du progID (par exemple, HKEY_CLASSES_ROOT\CrimsonEditor.txt) on voit une arborescence avec notamment "shell>open>command" et la ligne de commande utilisée pour exécuter l'action "open" sur le type de fichier associé.

    L'idée était de récupérer cette chaîne et de la modifier en remplaçant le %1 par le nom du fichier à ouvrir. Puis d'exécuter la ligne de commande.

    J'ai vu que l'objet WScript.Shell avait une fonction Exec qui permettait de lancer un processus et de récupérer un objet contenant les infos sur le processus (PID, statut, etc...). On peut ensuite mettre Access en stand by tant que le processus s'exécute (enfin, normalement).
    Premier test : à l'exécution, cet objet n'était pas reconnu. Mais je n'avais pas remarqué l'existence de la bibliothèque Windows ScriptHost object Model, [à fouiller].

    D'où la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set appExec = Wsh.Exec strCmd
    où appExec est faiblement typé, alors que cela devrait être un objet WshScriptExec.


    J'ai testé cette première version avec un fichier texte puis une image jpeg.
    Premiers bugs :
    C'est vrai que la recherche de la seconde clé de registre plantait. En regardant la base de registre j'ai vu que pour les deux extensions la casse de la clé "shell>open>command" était différente !!!!!
    Soit,
    HKEY_CLASSES_ROOT\ACDSee6.jpeg\shell\Open\command
    et
    HKEY_CLASSES_ROOT\CrimsonEditor.txt\shell\open\command


    ...et que la méthode RegRead était sensible à la casse... dans un premier temps. Au bout de quelques essais le problème disparaissait, miraculeusement. Si bien que j'ai oublié de le gérer (un peu par flegme aussi, car cela suppose de modifier la casse de chaque partie de la clé à chaque interception d'erreur ... ou de chercher une autre méthode insensible à la casse... ou de trouver comment chercher les clés de registre). Bon jusque là tout roule donc.

    Poursuite des test et là Stupeur : alors que le fichier texte se lance dans mon éditeur par défaut, l'évaluation de la commande Exec ne provoque rien pour l'image.
    J'essaye donc avec la méthode Run ... qui plante pour le texte mais fonctionne pour l'image.

    D'où la présence des deux méthodes Run et Exec.

    Alors, d'accord y avait pas de quoi poster une procédure aussi bugguée mais chez moi elle marche (sur mes deux test en tout cas).

    Conclusion : si votre base de registre a une structure différente de la mienne (va savoir!) ou si vous testez cette procédure un jour impair, ça risque de ne pas marcher.

    Si quelqu'un s'y connait un peu en VBScript et qu'il peut donner des pistes (ou la solution complète) pour s'affranchir de ces bugs, je crois bien que nous sommes preneurs!
    Si la pierre tombe sur l'oeuf, malheur à l'oeuf...
    Si l'oeuf tombe sur la pierre, malheur à l'oeuf...

  19. #19
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Voila que je rentre de weekend et je me sens ecrasé par tous ces codes..... jvé jamais m'y retrouver moi

    Je vous avouerais que j'ai pas tout compris a vos messages...
    Mais bon c normal on est lundi matin il me faut le tps de me reveiller et je relis ca a tete reposer...
    Merci


    a tout a l'heure...

  20. #20
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    D'abord, je rigole parce que le pauvre ibticeme qui voulait juste ouvrir un fichier se retrouve noyé dans les HKEY_CLASSES_ROOT et autres sections du registre de windows...
    En bref,
    - la commande Shell () lance une application, mais ne sait pas ouvrir un fichier avec la bonne application,
    - la commande GetObject() sait le faire, mais n'affiche ni le document, ni l'application avec laquelle il a ouvert le document. Dans certains cas, on sait le rendre visible (le document renvoyé a une propriété .Parent ou .Application ou .Container...). Dans d'autres cas, on sait pas (fichier .jpg par ex.)
    - 3ème essai de Don Long Juan : faire ce que font la commande GetObject() ou l'explorateur Windows, à savoir :
    + extraire l'extension du document (.doc ou .jpg, ou ...)
    + avec cette extension, chercher dans le registre de windows la commande requise pour ouvrir ce document ,
    + lancer un Shell avec cette commande + le nom du document.

    La commande qu'on cherche est la même qu'on voit, dans l'explorateur Windows, sous
    - menu Outils, Options des dossiers, Types de fichier,
    - cliquer sur un type de fichier, par exemple JPG,
    - clic sur Avancé : affichage de la liste des commandes disponibles (j'en ai 3 : Imprimer, Open et Printto !)
    - clic sur Open, bouton Modifier,
    - la commande est (chez moi) : "rundll32.exe C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen %1"
    Ce qui correspond à
    - l'ouverture de l'Aperçu d'images de Windows XP,
    - avec comme paramètre '%1', qui sera remplacé par "Chemin d'accès\NomDuFichier.jpg"

    Après, il faut encore que les paramètres soient mis en forme correctement...
    Donc, aujourd'hui, on ne peut rien promettre, mais on cherche.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/11/2006, 16h02
  2. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  3. Faire une application Web à partir d'objets win32
    Par WebPac dans le forum Delphi .NET
    Réponses: 7
    Dernier message: 02/05/2006, 19h11
  4. importer une image a partir d'un formulaire
    Par Malo dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 16/03/2006, 09h08
  5. Réponses: 5
    Dernier message: 20/02/2006, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo