PCMan - da wird ein ganzer Thread lang erklärt wieso getch() alleine eben nicht reicht und warum er es so machen soll wie oben geschildert und du postest am Schluss "Nimm getch()"?
Also echt, ich schließe hier einmal bevor da noch mehr so unfug kommt.
MfG SideWinder
Wen du darauf abzielst, den Taskman zu deaktivieren, dann geht das nur unter Win9x. Da solltest du dir mal SystemParametersInfo() anschauen (mit SPI_SCREENSAVERRUNNING).
Taugt aber nix !
Wenn dann Alt-Tab gedrückt wird reagiert das Programm auch nicht mehr auf Tastatureingaben.Wer weiss was es noch alles für "Nebeneffekte" gibt
Das sind Farben die du dann in der Improved Console als colcout.setcolor ( EINEFARBE ) verwenden kannst.
Sieh dir dazu unbedingt den Konsolen-FAQ-Beitrag "Improved Console" an!
MfG SideWinder
also die sache ist ja so geplant, dass das programm auf eine eingabe wartet. drückt man da escape ist die schleife beendet, drückt man aber etwas anderes, dann muss dieses zeichen ja wieder zurück in den puffer geschrieben werden, damit es vom scanf() mit eingelesen wird, sonst fehlt jedesmal die erste ziffer. dieses zurückschreiben soll ungetc() machen und putch() schreibt das zeichen einfach auf den bildschirm, damit man auch sieht, was man eingibt (wie das bei scanf() eben so ist). sorry, wenn mein programmierstil nicht wirklich sehr klar rüber kommt...
also ich hab grad folgende probleme , wäre dankbar wenn mir jemand etwas helfen könnte :
zum einen bin ich jetz während ich das prob mit dem weiterrutschen der console zu lösen versucht habe, auf ein anderes prob gestoßen...
ich hab meine unterfunktionen etwas umgeschrieben... und zwar druckt er wenn ich ne message per socket bekomme anstatt 'hallo' 'lollo' aus .. ?? k.a.
hier erstma die unterfunktion:
char *MyConsole::getmessage(char *buffer)
{
//char buffer[BUFFER_SIZE];
int bytes;
bytes = recv(socksr, buffer, sizeof(buffer)-1, 0);
if(bytes == -1)
return 0;
buffer[bytes]='\0';
//printf("%s", buffer);
return buffer;
}
in meinem hauptprog sieht das dann so aus:
DWORD WINAPI ThreadProc(PVOID wParam)
{
wParamPub = wParam;
mycon.getmessage(buffer);
printf("%s", buffer);
return ((DWORD)wParam);
}
buffer wurde vorher als char buffer[BUFFER_SIZE]; definiert
BUFFER_SIZE = 1024
so.. in der main wird dann irgendwann der thread ausgeführt, aber er druckt dann manche zeichen falsch aus !
NUR: wie ihr sehen konnt, hatte ich vorher das buffer in der funktion definiert und gleich dort schon geprintet , siehe //
mit der variante gings einwandtfrei
aber jetz nich mehr ganz ...
weiss einer was ?
was ich noch wissen wollte..
wenn ich per gets() eine variable grad beim einlesen bin und diese funktion durch ein thread unterbrochen wird, bleiben die chars in der variable oder werden die chars erst per return in die variable geschoben ?
sonst würd ich die var mit getchar einlesen oder so, dann könnt ich nämlich die zeile löschen, dort die message ausdrucken lassen und dann eins drunter einfach den string ausdrucken bis zu der stelle, wo ich aufgehört hab zu tippen, damit könnt ich das weiterrutschen simulieren ..
hmm
mfg haMMer
[ Dieser Beitrag wurde am 12.04.2003 um 13:31 Uhr von Hammer editiert. ]
Nein, grundsätzlich nicht. Du kannst aber eine Win32-Application erstellen, dort allerdings kein Fenster erstellen sondern nur eine Konsole anfordern ( AllocConsole() ), über diese lässt du dann einlesen. Du erstellst dann ein Windows-Fenster, wo du eine Ausgabe vornimmst.
Aber im Prinzip ist es nur ein Trick: Win-Fenster-Eingabe kommt in die DOS-Box und von dort aus liest du es dann im Prinzip aus...
MfG SideWinder