Gjest Slettet+142 Skrevet 6. august 2007 Del Skrevet 6. august 2007 (endret) Hei! Noen som kan hjelpe meg med å kunne lage et program som sjekker om Caps Lock er på, og deaktivere den? Har selvfølgelig prøvd googe, men det å søke etter "c++" på google resulterer jo bare i alle treff på "c", så "c++ how to check if caps lock is activated" hjelper jo temmelig lite :/ Operativsystem er Windows XP. Takk for hjelp - Mariyo Edit: Problemet er løst! Løsning Endret 7. august 2007 av Slettet+142 Lenke til kommentar
Jaffe Skrevet 6. august 2007 Del Skrevet 6. august 2007 Det er ingenting i veien for å lese om hvordan det gjøres i C da det mest sannsynlig går i C++? Lenke til kommentar
Gjest Slettet+142 Skrevet 6. august 2007 Del Skrevet 6. august 2007 Joa, men altså. Når man søker på "C", finner den alle ord som har en bokstav C i seg.. Du kan f.eks prøve å søke etter det jeg nevnte i førstepost.. Det er håpløst Så.. Igjen. Noen som kan lage en kjapp kode for meg, linke til en tutorial for behandlig og tilgang til tastatur-event(s) eller noe lignende? Lenke til kommentar
pertm Skrevet 6. august 2007 Del Skrevet 6. august 2007 Hva med å søke opp sider der det står hjelp til c++ og søke på dem etter hvordan du skal gjøre det istedenfor å søke på alt om hvordan du skal gjøre det. Lenke til kommentar
Gjest Slettet+142 Skrevet 6. august 2007 Del Skrevet 6. august 2007 Hva med å søke opp sider der det står hjelp til c++ og søke på dem etter hvordan du skal gjøre det istedenfor å søke på alt om hvordan du skal gjøre det. 9221660[/snapback] Hvis du kunne linket til et søk som gir noen resultater på det, hadde det vært kjempe flott Lenke til kommentar
Cotul Skrevet 6. august 2007 Del Skrevet 6. august 2007 http://www.c-plusplus.de/forum/viewtopic-v...-is-188389.html du kan se der. siden er på tysk, men koden er forståelig. Lenke til kommentar
Gjest Slettet+142 Skrevet 6. august 2007 Del Skrevet 6. august 2007 Hmm. Takk Det som mangler nå, er å endre // capslock aktiv til kode som deaktivere Caps Lock.. Lenke til kommentar
Gjest Slettet+142 Skrevet 6. august 2007 Del Skrevet 6. august 2007 Ok, nå føler jeg nesten at jeg har kommet et stykke her. Eneste jeg mangler, er biten hvor deaktiveringen skjer.. #include <windows.h> #include <stdio.h> #include <iostream> using namespace std; int sjekkCaps(bool &lstats); int main() { FreeConsole(); SHORT status = GetKeyState (VK_CAPITAL); bool lstats = (status & 0x0001); while(TRUE){ if(sjekkCaps(lstats)==3) return 0; Sleep(20); } return 0; } int sjekkCaps(bool &lstats) { for(int nKey = 0; nKey < 255; nKey++){ if((unsigned short)GetAsyncKeyState(nKey) == 0x8001){ if(nKey==20){ if(!lstats){ lstats = true; // Deactivate Caps Lock break; }else{ lstats = false; break; } } } } return 0; } Lenke til kommentar
Cotul Skrevet 6. august 2007 Del Skrevet 6. august 2007 http://msdn2.microsoft.com/en-us/library/ms646310.aspx hmm, du kan se litt der. kanskje det der kan brukes på en måte? Lenke til kommentar
Gjest Slettet+142 Skrevet 6. august 2007 Del Skrevet 6. august 2007 Var det jeg fikk vite på IRC også, men ingen som vil gi meg et eksempel på det Fikk også vite denne, som visstnok skulle være bedre.. Men jeg får det ikke til å virke. Kompilering går fint, men Caps Lock blir ikke slått av http://cpp.sourceforge.net/?show=39088 Ellers skjønner jeg meg ikke på syntaxen til SendInput() Lenke til kommentar
Cotul Skrevet 7. august 2007 Del Skrevet 7. august 2007 har aldri prøvd dette selv heller så skulle gjerne sett et eksempel på det. Forresten, har du testet om capslock er av eller på ? siden lyset på tastaturet påvirkes ikke av metoden du linker til. (hvis jeg forsto det rett) Lenke til kommentar
Gjest Slettet+142 Skrevet 7. august 2007 Del Skrevet 7. august 2007 (endret) Problemet er løst! Fant denne siden, hvor det var lagt ut kode av en funksjon Endelig kode ble til: #include <windows.h> #include <iostream> using namespace std; void SetCapsLock( ); int main() { FreeConsole(); bool lstats = false; while(TRUE){ SetCapsLock( ); Sleep(50); } return 0; } void SetCapsLock( ) { SHORT tast = GetKeyState(VK_CAPITAL); if( (tast & 1) ) { // Simulate a key press keybd_event( VK_CAPITAL, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); // Simulate a key release keybd_event( VK_CAPITAL, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } Tusen takk for hjelp folkens Endret 7. august 2007 av Slettet+142 Lenke til kommentar
Ståle Skrevet 7. august 2007 Del Skrevet 7. august 2007 Bare litt optimisering av koden: if( (tast & 1) ) hvor du ikke trenger 2 paranteser Lenke til kommentar
Gjest Slettet+142 Skrevet 7. august 2007 Del Skrevet 7. august 2007 Bare litt optimisering av koden: if( (tast & 1) ) hvor du ikke trenger 2 paranteser 9227992[/snapback] Blæ. Har ingenting å si da Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå