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

VBScript Discussion :

Appel d'une fonction d'une DLL retourne 0


Sujet :

VBScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 101
    Par défaut Appel d'une fonction d'une DLL retourne 0
    Bonjour,

    Voila je cherche à appeler des fonctions de DLL telle que user32, kernel32 en VBS. Seulement à chaque fois que j'appel une fonction celle ci me retourne 0.

    En m'inspirant d'un code trouvé sur internet, voici mon code qui me retourne 0:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim WShell
    Dim handle
     
    Set handle = 3
     
    Set WShell = CreateObject("WScript.Shell" ) 
    Set handle = WShell.Run ("RunDll32.exe kernel32.dll, GetTickCount" )
     
    MsgBox handle
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set handle = WShell.Run ("RunDll32.exe kernel32.dll, GetTickCount", true )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 101
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set handle = WShell.Run ("RunDll32.exe kernel32.dll, GetTickCount", true )
    J'obtiens l'erreur "Objet requis: 'Run(...)'" sur cette ligne

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    heu, je ne t'ai mis que la ligne modifié, il faut reprendre le reste du script pour que cela fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim WShell
    Dim handle
     
    Set handle = 3
     
    Set WShell = CreateObject("WScript.Shell" ) 
    Set handle = WShell.Run ("RunDll32.exe kernel32.dll, GetTickCount", true )
     
    MsgBox handle
    Et comprends tu ce que j'ai fait ? A quoi sert le true ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 101
    Par défaut
    ouais nan toujours la même erreur en recopiant ton code!

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    ha oui j'avais pas vu.
    Le Set n'est utilisé que lorsque l'on récupère un objet lors de l'appel d'une fonction.
    Run renvois un nombre, donc il ne faut pas de Set.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim WShell
    Dim handle
     
    Set WShell = CreateObject("WScript.Shell" ) 
    handle = WShell.Run ("RunDll32.exe kernel32.dll, GetTickCount", true )
     
    MsgBox handle
    J'ai testé et cela marche.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 101
    Par défaut
    ba euh... non ça marche pas, ça retourne toujours 0

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    ba euh... non ça marche pas, ça retourne toujours 0
    Si cela marche, mais cela ne fait ce que tu veux, c'est différent

    es tu sur que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RunDll32.exe kernel32.dll, GetTickCount
    retourne autre chose que 0 ?

    Perso ceci dans une console dos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RunDll32.exe kernel32.dll, GetTickCount > c:\test.txt
    ne m'écrit rien dans le fichier test.txt

  9. #9
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    salut,
    on ne peut pas récupérer une valeur avec ce genre de technique
    deux solutions:
    the hard way : appel de la fonction GetTickCount de kernel32 avec un wrapper (voir les contribs pour les exemples)
    the easy way : http://www.microsoft.com/technet/scr...5/hey0802.mspx
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Réponses: 6
    Dernier message: 02/11/2011, 09h34
  3. getattr() ? Appel d'une fonction depuis une fonction
    Par frites.saucisse dans le forum Général Python
    Réponses: 8
    Dernier message: 10/10/2008, 14h21
  4. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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