Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2007, 10h34   #1
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Par défaut Court circuiter une boite de dialogue lancée par une fonction dans une dll

Bonjour,

Je dois utiliser une fonction présente dans une dll, mais cette fonction demande de saisir un code dans une boite de dialogue avant de donner son résultat.
Ce n'est pas moi qui ai créé cette dll mais je suis obligé de l'utiliser.

J'aimerais savoir comment envoyer la réponse à cette boite de dialogue automatiquement car je ne veux pas être obligé de saisir manuellement la réponse.
Ne peut-on pas trouver (en ananlysant la dll, même si je ne sais pas faire), un moyen de donner ce code en parametre lorsque j'execute la fonction ?
Ou alors, puis-je intevenir en saisie par vba sur la boite de dialogue pour rentrer le code ?

Merci de vos réponses.

(Je connais pas trop mal vba, mais pas du tout la programmation de dll)
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 11h23   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Que fait-elle, cette dll ? Que lui demandes-tu ? J'ai bien vu que tu dis être obligé d'en passer par elle mais... Dis toujours
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h33   #3
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Ben c'est simple, c'est une identification de l'utilisateur qui l'utilise.

Je l'appelle en lui donnant une chaine de caractère et sa longueur comme paramètres, elle me demande ensuite par boite de dialogue un code d'accès et elle me renvoie un booleen tout en transformant la chaine de départ en chaine cryptée (dont j'ai besoin pour la suite de mon programme).

Je peux sans problème faire appel à la fonction par vba et lui donner en parametres la chaine et la longueur de la chaine, mais lorsque la fonction affiche une popup en me demande le code d'acces, je voudrais pas avoir à le saisir à la main.
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h36   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 924
Points : 30 924
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

S'il n'y a pas un des paramétres qui appelle ta dll pour le mot de passe cela ne sera pas possible, car je pense que la boite de dialogue est générer par la dll.

Si tu peux voir le concepteur de la dll pour rajouter ce paramètre ce serait le mieux.

Starec
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h51   #5
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Je peux essayer de voir avec le concepteur de la dll, mais il y a quasiment aucune chance qu'elle soit modifiée (ou même que j'ai accès à l'algorithme de contrôle du mot de passe).

N'y aurait-il pas un moyen par automation, d'envoyer des commandes clavier sur la boite de dialogue ?
Il faudrait pouvoir accéder comme un objet à cette boite de dialogue par exemple.
Ou alors il faudrait pouvoir balancer des commandes clavier, comme ça, comme si c'était saisie par l'utilisateur, vu que la boite de dialogue se met en premier plan lorsqu'elle apparait... Est-ce qu'une commande vba existe pour faire ça ?
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 18h29   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je crois bien que tu n'auras pas de réponse éclairée si tu n'indiques pas de quelle dll il s'agit. Il est possible que quelqu'un connaisse ça (?)
Bonne chance
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2007, 18h02   #7
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
C'est vrai.
Je pensais que c'était une application "maison", mais il semblerait que ça soit un système d'authentification opensource appelé idealx.

Si quelqu'un connait, peut-être est-il possible de le contourner...
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2007, 19h05   #8
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Si c'est un opensource? Tu devrais pouvoir trouver des renseignements sur le web, son utilisation a bien dû être expliquée
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 00h53   #9
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
La seule chose qui me fait penser que c'est un open source, c'est que la dll s'appelle idealx, et que j'ai trouvé un site qui s'appelle idealx.com qui me semble en être l'auteur puisqu'il s'agit de cryptage et d'authentification sécurisée.
Mais je comprend pas pour autant comment me servir de cette information...
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 08h51   #10
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu as regardé, ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 09h51   #11
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Oui, j'avais même télechargé l'application.
Mais ça ne ressemble pas à ce à quoi je suis confronté, car là c'est un logiciel de cryptage et signature de fichiers. Moi ce que j'ai c'est juste une dll qui contient une fonction d'authentification.
Je ne m'y connais pas assez pour faire le rapprochement entre les 2...
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 12h06   #12
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Pour information : j'ai trouvé la solution à mon problème.

Il faut utiliser les fonctions suivantess :
Code :
1
2
3
4
5
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
 
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long 
 
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Pour pouvoir identifier la pop-up et y envoyer une donnée...

La question que je me pose maintenant est la suivante :

Comment faire pour utiliser les fonctions de detection de la popup et de saisie alors que mon code est en stand by puisqu'il attend la réponse à la popup justement ?
Est-il possible de faire en sorte que mon code appelle cette dll, mais sans attendre le resultat, continue l'execution ?

Merci beaucoup
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 13h07   #13
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Citation:
Comment faire pour utiliser les fonctions de detection de la popup et de saisie alors que mon code est en stand by puisqu'il attend la réponse à la popup justement ?
Est-il possible de faire en sorte que mon code appelle cette dll, mais sans attendre le resultat, continue l'execution ?
Oui, tu peux utiliser une macro qui lance ta détection de popup en différé. Ta macro principale continueras après la ligne de code
Regarde Application.onTime.
Tu as plusieurs exemples sur le forum VBA dont un qui n'a pas 15 jours.
Bonne chance
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2007, 13h20   #14
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Merci beaucoup pour cette réponse...

D'après ce que j'en ai lu ça devrait répondre à ma question.
Je vous dirais ça dès que j'aurais pu le tester (pas avant la semaine prochaine malheureusement)
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h21.


 
 
 
 
Partenaires

Hébergement Web