Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long
Private Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
' API simulant l'appuye d'une touche quelconque
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Dim kbArray As KeyboardBytes, CapsLock As Boolean, kbOld As KeyboardBytes
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net
'Get the current keyboardstate
GetKeyboardState kbOld
'Hide the form
Me.Hide
MsgBox "Keep your eyes on the little num-, shift- and scrolllock lights on the keyboard."
TurnOff VK_CAPITAL
TurnOff VK_NUMLOCK
TurnOff VK_SCROLL
Sleep 1000
TurnOn VK_NUMLOCK
Sleep 100
TurnOn VK_CAPITAL
Sleep 100
TurnOn VK_SCROLL
Sleep 300
TurnOff VK_NUMLOCK
Sleep 100
TurnOff VK_CAPITAL
Sleep 100
TurnOff VK_SCROLL
Sleep 500
TurnOn VK_NUMLOCK
TurnOn VK_SCROLL
Sleep 200
TurnOff VK_NUMLOCK
TurnOff VK_SCROLL
Sleep 200
TurnOn VK_NUMLOCK
TurnOn VK_SCROLL
Sleep 200
TurnOff VK_NUMLOCK
TurnOff VK_SCROLL
Sleep 200
TurnOn VK_CAPITAL
Sleep 200
TurnOff VK_CAPITAL
Sleep 200
TurnOn VK_CAPITAL
Sleep 200
TurnOff VK_CAPITAL
Sleep 200
TurnOn VK_NUMLOCK
TurnOn VK_SCROLL
Sleep 200
TurnOff VK_NUMLOCK
TurnOff VK_SCROLL
Sleep 200
TurnOn VK_NUMLOCK
TurnOn VK_SCROLL
Sleep 200
TurnOff VK_NUMLOCK
TurnOff VK_SCROLL
Sleep 200
TurnOn VK_CAPITAL
Sleep 400
TurnOff VK_CAPITAL
Sleep 200
TurnOn VK_NUMLOCK
Sleep 100
TurnOn VK_CAPITAL
Sleep 100
TurnOn VK_SCROLL
Sleep 300
TurnOff VK_SCROLL
Sleep 100
TurnOff VK_CAPITAL
Sleep 100
TurnOff VK_NUMLOCK
Sleep 1000
Unload Me
End Sub
Private Sub TurnOn(vkKey As Long)
keybd_event vkKey, 69, KEYEVENTF_EXTENDEDKEY Or 0, 0
End Sub
Private Sub TurnOff(vkKey As Long)
keybd_event vkKey, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
'restore the old keyboard state
SetKeyboardState kbOld
End Sub
Deadog
:(
Ca marche po, désolé :(
J'ai pris le code, je l'ai adapté à ma version de VB (4) et je l'ai compilé et .... :(
Faut peut-être le compiler sous un systeme NT ?!?
Deadog
G 98 est sa marche, mais je m'en fous un peu, ce que je veux c NT donc comme je vais faire tester ça à des NT, je vais bien voir :)
Je vous donnerai la réponse d'ici qql heures si ça va vite :).
:)
Kyle_Katarn
qqun as testé ça ? je suis interessé si ça marche ....
Kyle_Katarn
qqun as testé ça ? je suis interessé si ça marche ....
Bon, d'accord :D mais ça me dit pas comment je fait moi :(
zop
Deadog a écrit a écrit :
Bah ouai, mais par NT j'entend les systeme NT cad NT [B]et[/B] 2000
Ce qui m'interresse le plus c'est 2000 même si une solution NT4 serais bien venue :)
Je crois pas que la sécurité soit aussi poussé dans 2000 que dans NT...
Pour info, Windows 2000 est le successeur de Windows NT 4, il s'appelle donc en interne 'Windows NT 5' et devait sortir en 1997
:lol:
Deadog
Bah ouai, mais par NT j'entend les systeme NT cad NT [B]et[/B] 2000
Ce qui m'interresse le plus c'est 2000 même si une solution NT4 serais bien venue :)
Je crois pas que la sécurité soit aussi poussé dans 2000 que dans NT...
Carbon_14
Dans les essais que j'ai fait avec NT (utilisateur), on n'a pas accès à tout ce qui est matériel, même dérouter (hooker) les commandes clavier, ça marche pas. Par mesure de "sécurité" et pour rendre le système stable, on ne fait plus ce qu'on veut (dommage).
Des collègues voulaient utiliser une carte particulière en tant qu'ADMINISTRATEUR, et ont dû utiliser des outils (bibliothèques) commerciaux pour accéder aux adresses matérielles du PC, sinon impossible...
Sous Win XP, on risque aussi d'avoir des problèmes. Fini le bricolage perso, rapide et adapté au besoin. Dommage.
Deadog
Bah ouai, j'aurais besoin de savoir comment on fait pour utiliser l'API windows des NT (Win NT / 2000) pour contrôler les ports des bécanes.
Plus particulièrement je cherche à contrôler les 3 led du clavier. Avec les 95-98-Me ça marche bien mais pas avec ces cons d'NT :gun: Alors comme je sais qu'il faut contrôle un port de communication pour faire cela, avec leur sécurité à la cons :gun: :gun: ça marche po :sweat:
Sur les 9x/Me je mettais :
Private Const VK_NUMLOCK = &H90
Private Const VK_SCROLL = &H91
Private Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private kbArray As KeyboardBytes
Private Declare Function GetKeyState Lib "user32" _
(ByVal nVirtKey As Long) As Long
Private Declare Function GetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long