Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » geht das irgendwie kürzer?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.12.2005, 18:24 Uhr
~chris123
Gast


Mein Konsolenprogram soll einen tastendruck simmulieren...
aber ich denke es sollte auch kürzer gehen...sonst werd ich noch verrückt...

if (strcmp (argv[2],"1") == 0) {key=0x30;}
if (strcmp (argv[2],"2") == 0) {key=0x31;}
if (strcmp (argv[2],"3") == 0) {key=0x32;}
if (strcmp (argv[2],"4") == 0) {key=0x33;}
if (strcmp (argv[2],"5") == 0) {key=0x34;}
if (strcmp (argv[2],"6") == 0) {key=0x35;}
if (strcmp (argv[2],"7") == 0) {key=0x36;}
if (strcmp (argv[2],"8") == 0) {key=0x37;}
if (strcmp (argv[2],"9") == 0) {key=0x38;}
...
if (strcmp (argv[2],"a") == 0) {key=0x41;}
...
...
...
...
keybd_event(key, 0, 0, 0); // drücken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.12.2005, 23:04 Uhr
RedEagle




C++:
int key = argv[2][0];

--
MFG RedEagle

Dieser Post wurde am 24.12.2005 um 23:05 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.12.2005, 23:25 Uhr
~chris123
Gast


Cool mit Zahlen geht das nun.
aber was ist mit buchstaben? wenn ich als parameter a angebe
schreibt das programm 4
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.12.2005, 02:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn dein vergleich mit dem Ascicode übereinstimmt kannst du einfach key=*argv[2] verwenden... wenn nicht und die sache wild wird empfiehlt es sich einfach einen lookuptable bzw eine map zu verwenden...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.12.2005, 09:44 Uhr
RedEagle




Zitat von ~chris123:
... wenn ich als parameter a angebe schreibt das programm 4

Was heißt "schreibt" gibts du das zum Testen mit z.B. "printf" aus??
Ansonsten musst du mal gucken, ob Der ASCII-Code des Zeichens mit dem Code für die "keybd_event" - Funktion überein stimmt

ASCII(a) == 0x61
ASCII(A) == 0x41

Demnach sollte in "int key" 0x61 oder 0x41 stehen...
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.12.2005, 17:15 Uhr
~chris123
Gast


"schreibt" bedeutet: meine konsolenprogramm läuft und ich habe den focus zum beispiel auf dem windows editor, dann schreibt mein konsolenprogramm per simmuliertem tastendruck ein zeichen in das notepad

ich wollte es halt nur vermeiden eine ziemlich lange tabelle in meinem source zu haben(wie ganz oben zu sehen)

aber ich glaub anders ist es auch nicht gerade sinnvoller. ob ich das nun so mache oder mit einem array

trotzdem danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.12.2005, 17:20 Uhr
RedEagle



Du musst einfach nur den ASCII-Code und den Code für die funktion vergleichen, und irgendwelche zusammenhänge finden. Dann kannst du durch Logische, bzw Mathematische Verknüpfungen ganz einfach von dem Einen code in den Anderen umwandeln.
Aber eigentlich sollten zumindest so zeichen wie 'a' oder '2' den selben code haben.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: