Vous devez faire clignoter le voyant DEL du clavier (verrouillage des majuscules/verrouillage numérique ou DEL de verrouillage du défilement) à l'aide de C# ou de VB.net. (Avec ou sans utiliser interop est bien)Comment faire clignoter la DEL du clavier à l'aide de C# ou de VB.Net
2
A
Répondre
10
This Microsoft Support article semble être ce que vous cherchez. Il explique comment basculer le verrouillage numérique, verrouillage des majuscules, et faites défiler les touches de verrouillage dans Visual Basic 6.
1
est ici le chemin C
#include <windows.h>
#define err if (GetLastError() != 0) return GetLastError();
extern "C" __declspec(dllexport) int __stdcall TurnLed(int state)
{
DWORD tmp = 4;
DWORD buf = (2*GetKeyState(VK_NUMLOCK) + 4*GetKeyState(VK_CAPITAL) + state)<<16;
DefineDosDevice(DDD_RAW_TARGET_PATH, "Kbd", "\\Device\\KeyboardClass1"); err
HANDLE kbd = CreateFile("\\\\.\\Kbd", GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); err
DeviceIoControl(kbd, CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS), &buf, sizeof(buf), 0, 0, &tmp, 0); err
DefineDosDevice(DDD_REMOVE_DEFINITION, "Kbd", 0); err
CloseHandle(kbd); err
return 0;
}
+0
Savez-vous quelles sont les permissions requises pour faire l'ioctl sur "\\. \ Kbd"? Cela pourrait-il être fait à partir d'un processus non-administrateur? Je n'ai pas de machine Windows ici pour tester ça. –
vous dire ne le fait pas ? : D –
Jason
J'ai des flashbacks sur Cryptonomicon. Vous ne seriez peut-être pas pris au piège dans une prison Philipino? – cletus