| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Cursortasten abfragen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo Hacker, wie kann ich mit C die Cursortasten abfragen? Es soll ungefähr so aussehen: while( Cursor == NACH_OBEN ...
![]() |
| | #1 (permalink) |
| Registriert seit: 10.02.04 ![]() Likes: 0 | Anzeige Hallo Hacker, wie kann ich mit C die Cursortasten abfragen? Es soll ungefähr so aussehen: while( Cursor == NACH_OBEN ) printf("Momentan wird Taste soundso gedrückt"); Danke im Voraus! |
| | |
| | #2 (permalink) |
| Registriert seit: 17.03.04 ![]() Likes: 2 | Hallo, ich begrüsse Sie beim C/C++ Kochstudio! Heute Kochen wir uns Tastensuppe! Da wir keinen Plan haben wie sowas geht suchen wir uns ein Rezept, und wo findet man ein solches Rezept? Genau, bei Google! So und hier ist es: http://www.computerhilfen.de/hilfen-14-28854-0.html http://www.supportnet.de/listthread/162493 Hoffe doch es hilft Dir!
__________________ Mfg Basic Avid - Use it or be used! - |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 10.02.04 ![]() Likes: 0 | Danke für die Links! Ich habe es ausprobiert, aber es hat nicht geholfen. Vielleicht hat es was damit zu tun, dass ich Linux benutze. Jedenfalls kriege ich von getch(), bzw getchar() für jede der vier Pfeiltasten den ASCII-Code 27 zurück. Ich muss aber zwischen den Richtungen unterscheiden können. ?( |
| | |
| | #4 (permalink) |
| Registriert seit: 17.03.04 ![]() Likes: 2 |
__________________ Mfg Basic Avid - Use it or be used! - |
| | |
| | #5 (permalink) |
| Moderator ![]() Registriert seit: 13.12.04 ![]() Likes: 0 | also wenn du bei getchr() immer ne 27 bekommst wprd ich an deiner stelle mal ne neue tasta kaufen mfg püppi
__________________ [Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.] |
| | |
| | #6 (permalink) |
| hey.. getch wartet auf eine eingabe also kommt es darauf an was du machen möchtest, für eine menüauswahl tut es getch() da du nebenbei nix anderes machen willst, wenn du dein programm irgendwie laufen lassen willst und zwischendurch sozusagen parallel schauen willst ob eine taste gedrückt ist machst du das mit kbhit(), das sagt dir ob ne taste gedrückt wurde, wenn nicht geht die funktion sofort zurück allerdings bin ich mir jetzt nicht sicher ob sie wenn eine taste gedrückt ist gleich den ascii code zurückliefert, denk aber schon wenn du es parallel machen willst kannst du es auch mit getch() machen und threads verwenden, allerdings ergeben sich dann wieder probleme wegen shared buffern usw, ist etwas forgeschritten beziehungsweise kannst du auch mit der winapi über eine msgproc in deiner main schleife mit disposemessage und translatemessage usw (schau dir dazu am besten n tutorial an) schauen ob eine taste gedrückt wurde und wenn ja in der msgproc eine routine dafür einbauen du könntest direct input von directx verwenden, usw.. aber wenn du einfaches simples c verwenden willst eben kbit() oder getch(), je nach dem was du brauchst //edit hier ne schicke lösung mit winapi, das progarmm erstellt lediglich ein windows fenster dass dann auf die eingaben reagiert wenn es aktiv ist, du hast aber auch ein consolenfenster auf dass du normal ausgeben kannst was du wahrscheinlich machen wirst, das windows fenster ist eh ganz klein also.. das prog tut automatisch wenn ein key gedrückt wurde schaun ob in dem array keys[256] den entsprechenden wert auf true setzen, 0 ist zb 48 (sollte es zumindest sein) und dann brauchst du dich blos nach der while(!done) schleife nach dem peekmessage darum zu kümmern, so wie das prog jetzt ist schreibt er zb dauernd "a gedrückt" wenn die taste eben gerade gedrückt ist, du kannst aber auch dein prog normal laufen lassen weil er eben automatisch erkennt wenn eine taste gedrückt wurde, die jeweiligen ascii codes musst du halt nachsehen bzw ist eben in den defines 0-9 und a-z mit VK_A bis VK_Z und VK_0 bis VK_9 definiert Code: #include <windows.h>
#include <stdio.h>
#include "KeyDefines.h"
BOOL keys[256];
BOOL done;
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
break;
case WM_KEYDOWN:
switch( wParam )
{
case VK_ESCAPE:
done = TRUE;
break;
default:
keys[wParam] = TRUE;
break;
}
return 0;
break;
case WM_KEYUP:
keys[wParam] = FALSE;;
return 0;
break;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
//INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
int main(int argc, char *argv[])
{
MSG msg;
const char* wndclassname = "Fensterchen";
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
wndclassname, NULL };
RegisterClassEx( &wc );
HWND hWnd = CreateWindow( wndclassname, "Input here",
WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, 0, 0,
NULL, NULL, wc.hInstance, NULL );
while(!done)
{
while( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
if(keys[VK_A])
{
printf("a gedrueckt");
}
}
UnregisterClass( wndclassname, wc.hInstance );
return 0;
} Code: #define VK_A 0x41 #define VK_B 0x42 #define VK_C 0x43 #define VK_D 0x44 #define VK_E 0x45 #define VK_F 0x46 #define VK_G 0x47 #define VK_H 0x48 #define VK_I 0x49 #define VK_J 0x4A #define VK_K 0x4B #define VK_L 0x4C #define VK_M 0x4D #define VK_N 0x4E #define VK_O 0x4F #define VK_P 0x50 #define VK_Q 0x51 #define VK_R 0x52 #define VK_S 0x53 #define VK_T 0x54 #define VK_U 0x55 #define VK_V 0x56 #define VK_W 0x57 #define VK_X 0x58 #define VK_Y 0x59 #define VK_Z 0x5A #define VK_0 0x30 #define VK_1 0x31 #define VK_2 0x32 #define VK_3 0x33 #define VK_4 0x34 #define VK_5 0x35 #define VK_6 0x36 #define VK_7 0x37 #define VK_8 0x38 #define VK_9 0x39 | |
| | |
| | #7 (permalink) |
| Moderator ![]() Registriert seit: 13.12.04 ![]() Likes: 0 | in mehren Foren gleichzeitig die selba frage posten find ich irgendwie oll ... :/ http://www.pronix.de/modules/newbb/v...id=972&forum=2 mfg püppi
__________________ [Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.] |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| per JS aktuelle URL abfragen... | Watchme | (Web-) Design und webbasierte Sprachen | 2 | 27.08.09 22:48 |
| get parameter in cgi/c++ abfragen | Friedrich | Code Kitchen | 8 | 11.10.08 11:02 |
| Netzwerkauslatung abfragen | Antibus | Code Kitchen | 2 | 17.03.08 16:22 |
| mit C++ phpTicketsystem abfragen | MaUs# | Code Kitchen | 4 | 09.05.07 19:53 |
| C - ARP Puffer abfragen | Heinzi | Code Kitchen | 2 | 07.10.05 15:22 |