Déssactiver la touche windows

soulaimania Messages postés 4 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 26 avril 2008 - 12 avril 2003 à 15:05
cs_GIL225 Messages postés 1 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 21 juin 2004 - 21 juin 2004 à 09:48
comment Déssactiver la touche windows du clavier à l'aide d'API, de procédure ou même d'un EXE. Et je serai trés reconnaissant ...
IZOZI

8 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
12 avril 2003 à 16:28
salut

j'ai la solution qui marche d'ailleur avec toutes les touches que tu veux. a priori seul pb ca marcherait que sous NT/2000/XP (j'ai pas testé su 9x). ce code n'est pas de moi :

'Dans un module
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Const WH_KEYBOARD_LL = 13
Public Const VK_RWIN = &H5B
Public Const VK_LWIN = &H5C
Public Type HOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)

Public Function KeyboardLowLevelProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim p As HOOKSTRUCT ' variable pour récupérer le vk code
'si idhook < 0 alors pas de traitement
If idHook < 0 Then
'appeler le hook suivant
KeyboardLowLevelProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
Else
'copie la structure de lParam
CopyMemory p, ByVal lParam, Len(p)
If p.vkCode = VK_RWIN Then ' si c la touche windows de droite ???
KeyboardLowLevelProc = -1 ' on fait croire au système que la touche n'a pas été pressée
Exit Function ' on ne passe pas au hook suivant
End If
'appeler le hook suivant
KeyboardLowLevelProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
End If
End Function

'Dans une form
Private Sub Form_Load()
'activer le hooking
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeyboardLowLevelProc, App.hInstance, 0&)
End Sub

Private Sub Form_Unload(Cancel As Integer)
'ne pas oublier : retirer le hooking
UnhookWindowsHookEx hHook
End Sub

sinon ca marche impect sur xp

voila

ShareVB
0
ezekiel95 Messages postés 42 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 20 mai 2005
15 janv. 2004 à 10:27
Dis moi, cel amarche t il avec vba?
J'ai tester ta fonction mais il ne se passe rien...

:-p Ha que merde je me suis shtroumphé ;-) :big)
0
ezekiel95 Messages postés 42 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 20 mai 2005
15 janv. 2004 à 11:23
Rectification, apres qq modifs, cela fonctionne mais pas pour ctrl+alt+sup ni alt+F4.
QQ'un sais comment faire pour les deux raccourcis manquants?

En tout cas, super code, vraiment!

:-p Ha que merde je me suis shtroumphé ;-) :big)
0
bbnt Messages postés 3 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 17 janvier 2004
17 janv. 2004 à 14:47
voila j'ai trouvé le code pas mal mais, pour tout les autres raccourci ca ne marche pas, même pas "ctrl+C" & "ctrl+V", c'est a dire des que c'est une combinaison de touche ca marche pas, et moi je veut désactivé ca, j'espere avoir une reponse rapidement. merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ezekiel95 Messages postés 42 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 20 mai 2005
19 janv. 2004 à 09:36
La dessus, tu peux operer avec les modifs de profils utilisateurs suivant ton appli mais par le code...

:-p Ha que merde je me suis shtroumphé ;-) :big)
0
bbnt Messages postés 3 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 17 janvier 2004
20 janv. 2004 à 09:54
je peut pas faire ca parce que je doit désactivé les touche pour tout le systeme, je suis sous windows 2000 pro, et le probleme et non resoulu pour le CTRL ALT SUPPR. Toute les autres raccourci je les est desactivé, merci de me proposé une supposition ou une solution
0
ezekiel95 Messages postés 42 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 20 mai 2005
20 janv. 2004 à 11:48
Voui mais expliques nous donc ton appli:
S'agit il d'une appli uniquement en local sur un poste?
As tu la possibilité d'avoir les droits administrateur et d'intervenir sur cette machine?

Si oui, aucun pb, tu peux virer tout ca!!!

:-p Ha que merde je me suis shtroumphé ;-) :big)
0
cs_GIL225 Messages postés 1 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 21 juin 2004
21 juin 2004 à 09:48
8-) écrire des tas de ligne pour rien c inutile surtout qu'il faut se faire un fichier qui fait 4lignes d'Hexa lolmdr :big) comme celui que je me suis fait ci-dessous :

0000 00 00 00 00 00 00 00 00 ........
0008 03 00 00 00 00 00 5B E0 ......[à
0010 00 00 5C E0 00 00 00 00 ..\à....
0018 D0 Ð

et qui sappelera scancode.reg vous doublecliquez dessus et hop la base de registre se modifie vous pouvez meme le faire en serau local en tant quadministrateur puisque vous avez acces en reseau local dans la base de registre de chaquye ordi yen a vraiment qui aiment vraiment "faire compliquer +to que simple"

a++plusshhh
;)
0