Jag skulle vilja styra mitt tangentbord med ett program. Vill bara att det En variant är att hitta ASCII koden för den knappnedtryckningen och lagra den i en konstant... (Ett vanligt sätt att lösa liknande "knapp- Vanligt eller console-program? Till: Niklas!!! ja jag skulle vilja att man typ kunde lura windows så att den tror att vänster pilknapp "trycks ner". eller högra. Du bör kunna skicka ett meddelande med PostMessage eller SendMessage. En undran: Piltangeterna har väl inget ASCII-tal? Tror inte det.. Men jag behöver inte veta hur man ska styra det tangentbordet längre.. verkar omöjligt.. Använd funktionen keybd_event eller SendInput, har inte gjort det själv men lägger med ett exempel från MSDN som sätter NumLock:styra tangentbord
ska styra en tangent. Hur skriver man ett program för att göra så vänster piltangent "trycks ner" av ett program? Skulle vilja ha det i c++ kod.Sv: styra tangentbord
nedtryckningar på...)
Är dock inte säker på vilken ASCII kod som innehåller vänstersteg.Sv: styra tangentbord
Vad skall du ha tangenttryckningen till?
Skall den skickas till ett annat program, eller behöver du den bara i ditt program?
/Niklas JanssonSv: styra tangentbord
(Bara nyfiken...)
Hur hade du löst det i en "vanlig" applikation...?
Är ingen expert som du... (Såg dina meriter...)
;)Sv: styra tangentbord
Sv: styra tangentbord
Problemet är att jag inte är säker på om det går att skicka systemmeddelanden. Ett alternativ är om du kan fixa en Handle till det program du vill skicka tangenttryckningar till.
Det vore praktiskt om du förklarade lite mer vad du skall ha programmet till.
/Niklas JanssonSv: styra tangentbord
ASCII-tabellen innehåller bara tecken.
Piltangenterna liksom Ctrl, Alt och Shift räknas inte som tecken.
Eller.....?Sv: styra tangentbord
Sv: styra tangentbord
#include <windows.h>
void SetNumLock( BOOL bState )
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
(!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
void main()
{
SetNumLock( TRUE );
}