Vilket språk ska jag använda mig av för att lyssna av musen/tangentbordet?
https://github.com/titanium007/Windows-User-Action-Hook
Verkar göra det du vill.
EDIT; Bara i Windows troligtvis.
https://github.com/titanium007/Windows-User-Action-Hook
Verkar göra det du vill.
http://i.imgur.com/j6uCnMO.png
EDIT; Bara i Windows troligtvis.
Okej! C# är typ som Java i grunden. Jag ska kolla mer på det där!
Utan att veta gissar jag att det kan vara svårt att hitta något som fungerar tillförlitligt på flera olika plattformar samtidigt, men kanske behöver man inte skriva så mycket systemspecifik kod ändå? Om man koncentrerar sig på windows är väl det mest naturliga att titta direkt i windows-api:et, där man till exempel hittar den här funktionen:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms64...
som kan användas för att lyssna på tangentbordet. Motsvarande för mushändelser är:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms64...
Använd dem till exempel så här:
#include "stdafx.h"
#include <iostream>
HHOOK hHook, hHook2;
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION )
{
KBDLLHOOKSTRUCT* p = (KBDLLHOOKSTRUCT*) lParam;
if (wParam == WM_KEYDOWN)
std::cout << "key down: ";
else
std::cout << "key up: ";
std::cout << p->vkCode << " " << (char) p->vkCode << std::endl;
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
MSLLHOOKSTRUCT* p = (MSLLHOOKSTRUCT*) lParam;
if (wParam == WM_LBUTTONDOWN)
std::cout << "left button down";
else if (wParam == WM_LBUTTONUP)
std::cout << "left button up";
if (wParam == WM_RBUTTONDOWN)
std::cout << "right button down";
else if (wParam == WM_RBUTTONUP)
std::cout << "right button up";
else if (wParam == WM_MOUSEMOVE)
std::cout << "mouse move";
std::cout << " (" << p->pt.x << ", " << p->pt.y << ")" << std::endl;
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
int main(int argc, char** argv)
{
HINSTANCE hInstance = GetModuleHandle(NULL);
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
hHook2 = SetWindowsHookEx(WH_MOUSE_LL, LowLevelMouseProc, hInstance, 0);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
- Igår Bang & Olufsen vrider tillbaka klockan – återlanserar cd-spelare från 1996 26
- Igår Uppdatering till MSI Claw ökar prestandan med upp till 150 procent 13
- Igår Testlabbet byter ut skärmarna – nioårig trotjänare pensioneras 22
- Igår Veckans fråga: Drar du nytta av DLSS i spel? 58
- Igår Apple måste öppna Ipad i EU 34
- Frågor om bolån? Hit me!5275
- Telenor stoppar fulstreaming för sina kunder99
- Testlabbet byter ut skärmarna – nioårig trotjänare pensioneras22
- Övriga Fynd – Diskussionstråd1274
- Bang & Olufsen vrider tillbaka klockan – återlanserar cd-spelare från 199626
- Liten dator för CAD5
- Datorn inte längre klarar kraven för uppgradering till Windows 115
- Vart ska man börja för att lära sig?24
- Nyhetstips!435
- Vad lyssnar du på just nu?13914
- Köpes Sökes billig AM4 Ryzen processor
- Säljes Triangle 5.0 + Yamaha RX-V6A
- Säljes Acer 24" Predator XB241YU QHD 144 Hz G-Sync
- Säljes Nybyggd dator
- Säljes RX 5600 XT, Ryzen 5 3600, AOC 24" I2481FXH
- Köpes Söker moderkort Z590 itx
- Säljes ASUS ROG STRIX RS200 riser-kabel 240mm
- Säljes Rensning: Nätaggregat, Kylare, Chassi, 4G Routers & Otestade Komponenter
- Säljes Asus Strix 4070 Ti Super OC
- Säljes 2600x, GTX 1070, ROG Strix B450-E, 16GB ddr4 + chassi
- Bang & Olufsen vrider tillbaka klockan – återlanserar cd-spelare från 199626
- Uppdatering till MSI Claw ökar prestandan med upp till 150 procent13
- Testlabbet byter ut skärmarna – nioårig trotjänare pensioneras22
- Bahnhofs VD ratar stoppet mot fulstreaming37
- Veckans fråga: Drar du nytta av DLSS i spel?58
- Aktivister stämmer Open AI för brott mot GDPR26
- Miljonböter för Razers RGB-munskydd26
- Apple måste öppna Ipad i EU34
- Spela Fallout-variant i smyg i Excel14
- EU förbjuder svaga lösenord i smarta hemmet-prylar49