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 ?
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 ?
J'ai oublié : en VB6.
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.”
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.
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.”
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.
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.
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).
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.
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.
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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager