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

VBA Access Discussion :

[Access 2003] Communiquer avec l'invite de commande


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 37
    Points
    37
    Par défaut [Access 2003] Communiquer avec l'invite de commande
    Bonjour,

    J'essaye d'écrire une fonction qui exécute un programme "en tant que" à l'aide de la commande système runas. Pour cela je me suis inspiré de messages précédents dans le forum, et j'avoue que j'ai du mal à comprendre ce que je fais. Mon problème se situe au niveau de l'envoi du mot de passe à la commande runas. Voici le 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
     
    Function runasadmin(login As String, passwd As String, pgm As String) As String
     
        Dim oShell As New IWshRuntimeLibrary.WshShell
        Dim oScriptExec As IWshRuntimeLibrary.WshExec
        Dim sBuffer As String
     
        Set oScriptExec = oShell.Exec("runas /noprofile /user:" & login & " """ & pgm & """")
        Set oScriptExec = oShell.SendKeys(passwd & "~")
     
        sBuffer = oScriptExec.StdErr
        runasadmin = sBuffer
     
    End Function
    Lors de l'exécution, Access me renvoie l'erreur de compilation: "Fonction ou variable attendue" et me surligne ".Sendkeys" pourtant je lui fourni bien les bons arguments. Est ce que quelqu'un aurait une suggestion à me faire pour que ce code fonctionne?
    Merci d'avance pour le temps que vous passerez à me répondre.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    La méthode SendKeys ne renvoie pas un objet de type WshExec.
    Je crois même qu'elle ne renvoie rien.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
        oShell.SendKeys passwd & "~"
    Mais de toutes façons tu risque d'avoir un problème car SendKeys envoie des caractères dans la fenêtre active.
    Et je n'ai pas l'impression que Exec active la fenêtre la fenêtre du programme lancé.

    Par ailleurs, pour la sortie d'erreurs standard :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If Not oScriptExec.StdErr.AtEndOfStream Then
           sBuffer = oScriptExec.StdErr.ReadAll
        End If
    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/09/2006, 05h54
  2. [Access 2003] Probleme avec une association reflexive
    Par softstar dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/08/2006, 13h43
  3. [ACCESS 2003] Pbl avec la fonction CpteDom
    Par UNi[FR] dans le forum Access
    Réponses: 3
    Dernier message: 17/07/2006, 19h38
  4. [access 2003]Problème avec argument de bouton?
    Par steeves5 dans le forum Access
    Réponses: 2
    Dernier message: 30/05/2006, 16h45
  5. se déplacer avec l'invite de commandes (windows xp)
    Par kriskikout dans le forum Langage
    Réponses: 9
    Dernier message: 05/05/2006, 15h59

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