HistodeX
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention 8 août 2006
-
7 août 2006 à 15:41
HistodeX
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention 8 août 2006
-
8 août 2006 à 15:24
Bonjour,
Voilà j'ai une question très simple. Admettons que mon programme est lancé au démarrage de Windows, il fonctionne de façon cachée avec un "Me.Hide". Cependant, dès qu'on fait un raccourci clavier dans Windows, par exemple ALT+A, le programme le détecte et applique en conséquence une fonction. La quesiton est donc, comment faire pour que le programme puisse détecter n'importe quel raccourci clavier tapé sous Windows ? De même, comment faire pour qu'un tel programme puisse détecter une action effectuée sous Windows, comme un click droit par exemple ?
Merci de votre réponse qui je l'espère portera ses fruits
A voir également:
Errordomain=nscocoaerrordomain&errormessage=impossible de trouver le raccourci spécifié.&errorcode=4
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 7 août 2006 à 17:27
Version .net du code de Mortalino (non testé).
HistodeX tu devrais faire une recherche sur le site et sur Google ce n'est pas les exemples qui manquent 'vb.net + Keylogger'
Mortalino quand dont que c'est que tu te mets à vb.net ?
Private Declare Function
GetKeyState Lib"user32" (ByVal nVirtKey AsInteger) As
Short
Const
VK_LBUTTON = &H1
'Gauche
Private
Sub MyTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyTimer.Tick
'Bouton gauche
If GetKeyState(VK_LBUTTON) >= 0
Then
Me.Text "Bouton gauche de la souris relaché>"
Else
'Coordonnées de la souris
Dim coord As
Point = Windows.Forms.Cursor.Position
Me.Text "Bouton gauche de la souris enfoncé>"
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 août 2006 à 16:11
Salut,
Fais un essai avec ceci pour le clic de la souris :
Private Type
POINTAPI
x As Long
y As Long
End
Type
Private Declare Function GetCursorPos Lib "user32"
(lpPoint As POINTAPI) As Long
Private Declare Function GetKeyState Lib "user32"
(ByVal nVirtKey As Long) As Integer
Const VK_LBUTTON = 1
' Bouton gauche souris
Private Sub Timer1_Timer()
' Déplacez-toi où tu veux et appuye sur le bouton
gauche
' de la souris et hop on sait tout quand on veut (caption de la form)
Dim Coord As POINTAPI
If GetKeyState(VK_LBUTTON) >= 0 Then
Me.Caption = "Bouton gauche de la souris relaché"
Else
GetCursorPos
Coord Me.Caption "Bouton gauche de la souris enfoncé : x " &
_
Coord.x & " , y = " & Coord.y
End If
End Sub
constantes :
Constante, Valeur , Définition
VK_RBUTTON, 02, Bouton droit de la souris.
VK_MBUTTON, 04, Bouton du milieu de la souris (le 3ème boutton).
VK_RWIN, 5C, Touche Windows droite (Microsoft Natural Keyboard)., ----
VK_LWIN, 5B, Touche Windows gauche (Microsoft Natural Keyboard).
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
HistodeX
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention 8 août 2006 7 août 2006 à 16:31
J'ai essayé, il faut remplacer certains trucs nottament les "type" par "structure" ou encore "caption" par "text" mais sinon le programme compile parfaitement. Cela dit, je n'ai pas l'impression que ma fonction Timer1_Timer() se lance, puisque rien ne se passe, il ne faut pas faire une manip pour que cette fonction se lance en permanence ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 août 2006 à 16:43
Ben c'est celui qui est plus haut ^^
Mais moi je suis en VB6, toi en VB.net !
Ce que j'ai fait, c'est ouvrir un nouveau projet avec une Form.
J'ai placé un timer, ayant la propriété Interval à 100 mais tu peux mettre moins, et la propriété Enabled à True
Tous s'affiche dans le caption de la Form
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
HistodeX
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention 8 août 2006 7 août 2006 à 16:50
en fait il me renvoit un msg d'erreur à chak fois que je lance la fonction Timer1_Timer(), dès qu'il essaye de faire le test "If GetKeyState(VK_LBUTTON) >= 0 Then", le message d'erreur étant : "A call to PInvoke function 'WindowsApplication1!WindowsApplication1.Form1::GetKeyState' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature."
HistodeX
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention 8 août 2006 7 août 2006 à 16:51
Nan mais pour le timer ya aucun probleme, je mets la fonction Timer1_Timer à chak Tick du timer ke j'ai créé, mais comme je vous ai dit plus haut, j'ai un retour d'erreur quand la foncion est execuT ... ?