Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
13.10.2001, 02:02
Retro



So, ich sitz grad an nem Berechnungsprogramm in C++ (schwarzes ekeliges Fenster, wie ich es nenne! =)).

Jetzt möchte ich ne Art konfigurationsmenü einbauen, das erscheint wenn man ne bestimmte Taste drückt...

Nur wie baue ich nen Event auf Tastendruck ein? Ich glaub ihr versteht was ich meine.

Thx

Edit -> Aso, also ich meine eher ne Tastenkombination zwischen Alt+Buchstabe oder Strg+Buchstabe...

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 13.10.2001 um 07:00 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
13.10.2001, 13:12
Mazze



Kann man doch mit getch() und so machen!
Wie das genau funktioniert weiß ich nicht!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
002
14.10.2001, 12:06
]predator[



#include <windows.h>
#include <iostream.h>

int main()
{
SHORT KeyState;
SHORT ArrKeyState[256];
long CheckSum;
long OldCheckSum;

OldCheckSum = 987654; // dummy

while (1)
{
CheckSum = 0;
for (int i = 0; i < 256; i++)
{
KeyState = GetAsyncKeyState(i);
CheckSum += KeyState;
ArrKeyState[i] = KeyState;

}

if (OldCheckSum != CheckSum)
{
for (int i = 0; i < 256; i++)
{

if (ArrKeyState[i] == -32767)

{
cout << "Key " << i << " pressed. (" << (char) i << ")" << endl;
}
}
}
OldCheckSum = CheckSum;
}
}

---

mit dem prog kannst du EINE taste, die der benutzer gedückt hat einlesen... also n keylogger, aber besser als nichts. die taste wird in der variabel i gespeichert also kannste darauf noch folgendes hinzufügen....

if ( i == ......)
{

}

--

zum Seitenanfang zum Seitenende Profil || Suche
003
23.10.2001, 13:23
Cyberbird



Das geht auch noch anders und zwar mit getch() dazu muss die conio.h inkludiert werden.
z.b.:

#include <iostream.h>
#include <conio.h>

void main()
{
char i;
i=getch();
cout << "Die Taste " << i << " wurde gedrückt" << enld;
return;
}

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche
004
23.10.2001, 15:30
Retro



Hmm, hervorragend! =)

Genau das isses was ich gesucht habe. Ich habs schonmal irgendwo entdeckt, aber nicht die .h die ich includen muss!

Also Thx!

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
005
23.10.2001, 20:02
Cyberbird



np hab ich auch erst vor kurzem im IRC erfahren! Falls man Fragen hat findet man im Chat meistens die Antwort, da dort "ziemlich" gute Coder sind ;)
greetz
Cyberbird

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche
006
23.10.2001, 20:03
Zeeke



Puh, wer hatte dir das bloss veraten =D lol

Allerdings ist diese Art ein wenig blöde, weil sie den gesamten Programmablauf anhält.....

--

zum Seitenanfang zum Seitenende Profil || Suche
007
23.10.2001, 22:06
Hellfire



Ich glaube es gibt die Möglichkeit in einer while schleife abzufragen ob eine Taste gedrückt wurde (war glaube ich if (kbhit()) oder so ähnlich - auch in der conio.h ) und dann halt entsprechend der gedrückten Taste etwas ausführen zu lassen oder halt das Programm wie gewöhnt weiterlaufen zu lassen.

--

zum Seitenanfang zum Seitenende Profil || Suche
008
24.10.2001, 07:20
Zeeke



Stimmt, so würde das ganze dann funzen...

#include <stdio.h>
#include <conio.h>

main()
{
char cBla;
do {
if(kbhit())
cBla = getch();
printf("%c\n", cBla);
} while(1);
}

--


Dieser Beitrag wurde am 24.10.2001 um 07:22 von ZeekeGF bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
24.10.2001, 18:31
Cyberbird



Axo jo stimmt so gehts auch! Nach dem einlesen sollte man n cout << endl; einbaun, damit das Progi weiterläuft!
greetz
Cyberbird

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche
010
26.10.2001, 00:01
blair



Schwarzes eckliges Fenster?

KETZER!

Das ist eine Consolenanwendung, die reinste form des codens! (Amen)

--

because our freedom sits at the end of a gun
we're all here getting beat up and held back
we're all here digging knives from our backs

zum Seitenanfang zum Seitenende Profil || Suche
011
26.10.2001, 16:19
Cyberbird



@ZeekeGF wieso liest die schleife immer return ein?
@blair Amen
greetz
Cyberbird

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche
012
26.10.2001, 16:40
Retro



Ketzer?! Willste das ich wieder mit Delphi anfange? >=))

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
013
26.10.2001, 16:55
Zeeke



@Cyberbird: Wo liesst die Schleife return ein? Oder meinst du sie kann die Return-Taste nicht einlesen?

--


Dieser Beitrag wurde am 26.10.2001 um 16:55 von ZeekeGF bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
014
26.10.2001, 20:11
Cyberbird



#include <stdio.h>
#include <conio.h>

main()
{
char cBla;
do {
if(kbhit())
cBla = getch();
printf("%c\n", cBla);
} while(0);
}

wenn ich dieses Programm ausführe, startet das Programm, und liest automatisch return ein, ohne das ich ein Zeichen eingeben kann!
wenn ich mit while(1) arbeite bekomm ich ne endlosschleife
greetz
Cyberbird

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche
015
26.10.2001, 20:13
Zeeke



es sollte auch ne endlosschleife sein..., und ausserdem liesst es nicht automatisch return ein, es liesst einfach nix ein und beendet sich

--

zum Seitenanfang zum Seitenende Profil || Suche
016
26.10.2001, 21:00
Cyberbird



axo thx

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche