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

Windows Discussion :

Problème avec l'API "GetDlgItemText"


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 60
    Points
    60
    Par défaut Problème avec l'API "GetDlgItemText"
    Bonjour,

    Lorsque j'utilise la fonction GetDlgItemText, j'ai le message :

    "Point d'entrée GetDlgItem d'une DLL introuvable dans user32".

    alors que la fonction SetDlgItem passe bien.

    Je suis en Windows 2000 SP4.

    Quelqu'un voit-il la solution ?

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 60
    Points
    60
    Par défaut Problème avec GetDlgItemText


    J'ai oublié : en VB6.

  3. #3
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    As-tu bien inclus windows.h?
    Sinon essais de linker User32.lib
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En VB6, inclure Windows.h ?

    Ton erreur, elle est sur GetDlgItemText() ou GetDlgItem() ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    je ne fais pas de VB desolé :-)
    je n'ai fait que de suivre le lien de la MSDN pour regarder où sont les dépendances.
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 60
    Points
    60
    Par défaut Résolu
    Bonjour et merci à tous.

    En fait c'était un problème d'alias. Il fallait déclarer :
    "Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long"
    et je ne mettais pas d'alias.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    J'ai un doute: Les chaînes en VB sont-elles unicodes ou non ?
    Si elles sont supposées être unicode, c'est GetDlgItemTextW qu'il faut utiliser, pas GetDlgItemTextA...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    D'ailleurs je comprends pas pourquoi avoir besoin de GetDlgItemText en VB. Il y a les propriétés Text (pour les TextBox ...) et Caption (autres).

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Peut-être pour taper dans un autre processus, mais la doc de GetDlgItemText() indique que ce n'est pas forcément censé marcher (notamment, on ne peut pas utiliser ça pour lire le contenu d'une EditBox en mode Password)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 60
    Points
    60
    Par défaut Pourquoi GetDlgItemText en VB...
    Melem,

    Le but est d'obtenir le contenu d'une zone de saisie (ou fenêtre, puisqu'en Windows, tout contrôle est une fenêtre) de classe Edit dont le Caption en Spy++, dans l'outil "Search windows", est vide (""). J'arrive à obtenir son handle, mais vu que Caption est vide...

    Et pourtant des outils tels que WinSpy (excellent) et Windowse (excellent) y parviennent.

    Aussi essayé-je tous les moyens pour le récupérer, ce contenu !!

    Je précise que l'application qui contient la zone dont je veux récupérer le contenu m'est fermée au niveau code. Je veux créer une sorte de "finder" et c'est une application parmi d'autres qui posent le même problème.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Eh bien tu n'y arriveras pas ainsi, à mon avis.
    Soit tu peux espérer y arriver en envoyant un message WM_GETTEXT au contrôle, (je ne sais même pas si une telle chose est possible en VB), soit il faut faire encore plus crade, et y injecter une DLL par injection de deux threads (et ça, c'est encore plus improbable d'y parvenir en VB)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 60
    Points
    60
    Par défaut Résolu !!!
    En effet Médinoc, en arrive au but "en envoyant un message WM_GETTEXT au contrôle".
    Et ça marche en VB.

    D'ailleurs, connais-tu des cas où VB ne puisse pas faire ce que fait par exemple C++, concernant les API Windows ?

    En tout cas, merci beaucoup de votre aide à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les API
    Par Bertr@nd dans le forum Windows Forms
    Réponses: 20
    Dernier message: 14/07/2007, 14h53
  2. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 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