Bonjour à tous,

Voilà...
Je joue un peu avec Excel et je suis bloqué sur un problème que je n'arrive pas à résoudre après avoir cherché un tit moment sur le WEB.

Au départ, je voulais simuler des appuies de touches de l'utilisateur pour qu'il puisse passer une fenêtre avec un mot de passe... Facile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    Call SendKeys("MyPass")
    Call SendKeys("{Enter}")
Problème #1 :
Quand l'utilisateur vérouille son poste... A marche pu !
Du coup en cherchant un peu, j'ai trouvé la fonction "SendMessage" qui permet d'envoyer des événements en passant le numéro de la fenêtre.
Voilà le code que j'ai récupéré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) 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
 
Private Const WM_SETTEXT = &HC
Private Const EM_SETSEL = &HB1
 
Private Const WM_KEYDOWN = &H100
 
 
Private Sub SendPassword(ByVal hWnd As Long, ByVal sPass As String)
  'Send password as text
  SendMessage hWnd, WM_SETTEXT, 0&, ByVal sPass
  'Set the selection of the edit/text box
  SendMessage hWnd, EM_SETSEL, Len(sPass), 0&
  'Send Enter/return key
  PostMessage hWnd, WM_KEYDOWN, &HD&, &H1C0001
End Sub
Et donc me suis dit que pour balancer mon mot de passe, suffisait que j'envoie le handle de mon application et le mot de passe tout simplement via une fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Sub testSend()
    Call SendPassword(Application.hWnd, "TST")
End Sub
Problème #2
Ca marche pas !
J'aurais au moins voulu que le SendMessage fasse pareil que SendKeys, mais j'y arrive pas !

J'ai fouillé sur le net et à chaque fois tout le monde a résolu sons problème on sait pas trop comment....
Quelqu'un sait comment que ça marche ?

Merci d'avance à tout ceux qui voudront bien me répondre !