Rebind af key - program

Tags:    c++

<< < 12 > >>
Hey Udvikler.dk

Jeg kunne godt tænke mig at skrive et lille program der gør at jeg kan binde mine musse taster til knapper på keyboardet. Fx så hvis jeg trykker højer-klik trykker den numlock af/på.

Er dette muligt og i så fald hvad skal jeg bruge?
Mit nuværende kendskab til c++ er hvad Bertels guide har lært mig samt cplusplus's begynde guide.

På forhånd tak.





Indlæg senest redigeret d. 28.07.2007 21:53 af Bruger #10853
13 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det er fordi du ikke linker til .lib filerne i Platform SDK'et. Du kan på denne side læse hvordan det gøres: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/



Du kan gøre det ved at installere en windows hook, lidt lige som:
http://www.damb.dk/snip/rmkey.html

I stedet for WH_KEYBOARD_LL skal du bruge WH_MOUSE_LL, se:
http://msdn2.microsoft.com/en-us/library/ms644990.aspx

Derpå kan du sende bruge SendInput til at simulere tastetryk:
http://msdn2.microsoft.com/en-us/library/ms646310.aspx



Tak for hjælpen Bertel, men:

I den kode du har linket til, når jeg compiler den får jeg.

1>.\\TEST.cpp(2) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory

Programmet mangler windows.h, så meget forstår jeg da men, hvor finder jeg windows.h bibloteket og hvor skal den placeres? Jeg bruger Visual C++





Okey, efter lidt googling er jeg kommet frem til at jeg mangler Windows Platform SDK.. det er jeg nu ifær med at hente.




Jeg har nu installeret SDK'en, men jeg synes ikke at kunne få det til at virke.

Denne kode giver mig en fejl meddelelse når jeg prøver at compile den.
Fold kodeboks ind/udKode 


Fejl meddelelsen lyder:
1>TEST.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _main

What gives? :)



Indlæg senest redigeret d. 29.07.2007 04:46 af Bruger #10853
Okey, jeg har du gennemgået det der stod i linket. Nu får jeg denne fejlmeddelelse:

1>c:\\documents and settings\\troels\\skrivebord\\test\\test\\test.cpp(6) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [23]' to 'LPCWSTR'

Jeg fandt frem til at det kunne løses ved at include Tchar.h og putte _T() omkring Teksten.

Men det giver mig nu denne fejl:
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup





Så nue r der gået et par dage og jeg har rodet lidt med programmet når jeg har haft tid. Jeg er kommet frem til følgende kode:

Fold kodeboks ind/udKode 


Men når trykker "Start Debugging" i VC++ kommer den med en fejl efter den har compilet koden.

"Unhandled exception at 0x00000000 in Test.exe: 0xC0000005: Access violation reading location 0x00000000."

Jeg kan lige nå at se MessangeBoxen Hook installed hvorefter fejlen kommer.

I det efterfølgende skærm billede er der en grøn pil der peger på linien:

Fold kodeboks ind/udKode 


Håber I kan hjælpe med at komme over dette problem : )

På forhånd tak
-Troels



Jeg har ikke en VisualC++ der kan kompilere noget for tiden, men den opfører sig ikke sådan når jeg kompilerer med BorlandC++ eller gcc.

Prøv at starte med at lave din LowLevelMouseProc om til:
Fold kodeboks ind/udKode 


Og se om det så kan køre.

Får du nogen warnings når du oversætter?



Der laver den det samme nummer.

Men siger du at du kan få koden til at virke med Borland og gcc?

Jeg kan jo sådan set godt kompile koden. Den kan bare ikke lide at jeg starter programmet. Når jeg kører exe filen fra skrivebordet kommer windows med "Test.exe har fundet en fejl og afsluttes.. bla bla"

Både når jeg starter koden fra vc++ og fra skrivebordet hakker mussemarkøren helt vildt indtil det crasher, så noget må der da ske :)

-Troels



Indlæg senest redigeret d. 03.08.2007 01:48 af Bruger #10853
Double Post



Indlæg senest redigeret d. 03.08.2007 03:30 af Bruger #10853
<< < 12 > >>
t