Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Frage zu GetKeyState

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 < [ 2 ] [ 3 ]
000
02.08.2005, 09:54 Uhr
RedEagle



Hi


Ich möchte Prüfen, ob eine Taste gedrückt ist, oder nicht:

C++:
bool iskeydown(int key)
{
short status;
status = GetKeyState(key);
}


In der msdn steht zumn rückgabewert folgendes:

Zitat von bzw aus der msdn:
If the high-order bit is 1, the key is down; otherwise, it is up.


Aber welches bit ist gemeint?? Fals es das letzte (höchste) ist, welches ist es bei short??
Wie bekomme ich jetzt aus dem wert in "status" ein true/false hin??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.08.2005, 09:59 Uhr
Th




C++:
if (GetKeyState(key) & 0x8000)
{
    // key is down
}


Dieser Post wurde am 02.08.2005 um 10:00 Uhr von Th editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.08.2005, 10:00 Uhr
RedEagle




--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.08.2005, 10:05 Uhr
RedEagle



m.. geht irgendwie nicht...

C++:
bool iskeydown(int key)
{
if(GetKeyState(key) & 0x8000) return true;
return false;
}


C++:
//Test
do
{
  Sleep(100);
  output('x');
}
while(!iskeydown(VK_LSHIFT));
output('y');

--
MFG RedEagle

Dieser Post wurde am 02.08.2005 um 10:05 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.08.2005, 10:14 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


benutz


C++:
if(HIWORD(GetKeyState(key)) == 1)
{
  return true;
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.08.2005, 10:16 Uhr
Oliver
S2-Pixelgeneral


Falls du den Keystate asynchron abfragen willst, benutz GetAsyncKeyState(...).
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.08.2005, 10:19 Uhr
RedEagle



m.. geht auch nicht

C++:
bool iskeydown(int key)
{
if(HIWORD(GetKeyState(key)) == 1) return true;
return false;
}


@Oliver: hab ich gerade auch ausprobiert, geht aber auch nicht

Könnte der Fehler evtl woanders dran liegen??
--
MFG RedEagle

Dieser Post wurde am 02.08.2005 um 10:23 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.08.2005, 10:36 Uhr
Tommix



Hallo,
laß Dir den return von GetKeyState doch einfach mal als Zahl anzeigen.

- Tommix

--
7
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.08.2005, 10:48 Uhr
RedEagle




C++:
do
{
  Sleep(100);
   ioutput(GetKeyState(VK_LCONTROL), HEX);
   output(' ');
   ioutput(GetAsyncKeyState(VK_LCONTROL), HEX);
  output('|');
}
while(!iskeydown(VK_LCONTROL));


es ist immer 0 0

aber warum??
Gibts evtl alternativen zu "Get(Async)KeyState"??
--
MFG RedEagle

Dieser Post wurde am 02.08.2005 um 10:49 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.08.2005, 10:57 Uhr
Oliver
S2-Pixelgeneral


Das geht wenn ich drücke...


C++:
#include <iostream>
#include <windows.h>
using namespace std;


int main()
{
    while(1)
    {
        if(GetAsyncKeyState(VK_LSHIFT) & 0x8000)
            cout << "shift ist gedrueckt!";
    }
    return 0;
}



--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ 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: