Tastatureingabe abfangen
-
Hallo!
Ich möchte in meinem C-Programm die Verwendung der SRTG-Taste deaktivieren.
Ist es mögliche diese per Befehl zu deaktivieren oder kann ich eine Funktion schreiben die eine bestimmte Aktion ausführt sobald die STRG-Taste gedrückt wird??
Das würde ja bedeuten, dass die ganze Zeit - während mein Programm läuft - auf die Eingabe geachtet werden muss, geht das überhaupt?Wäre mir sehr hilfreich falls jemand ne Idee hat,
THX!
-
deaktivier doch lieber gleich Strg-Alt-Entf und Alt-Tab!
hat zwar nix mit C zu tun aber bitte:// Strg-Alt-Entf und Alt-Tab deaktivieren: int ilRetVal = 0; SystemParametersInfo(SPI_SCREENSAVERRUNNING, true, &ilRetVal, NULL); // Strg-Alt-Entf und Alt-Tab wieder aktivieren: int ilRetVal = 0; SystemParametersInfo(SPI_SCREENSAVERRUNNING, false, &ilRetVal, NULL);
mfg hohesC
-
sry
mfg hohesC
-
Mhh hab mich wohl unvollständig ausgedrückt...
ich brauche eine Abfangmethode für STRG+C da ich nicht unter Windows arbeite sondern unter diesem UraltOS namens MS-DOS... und zwar n richtiges MS-DOS. Und dort lassen sich Anwendungen nämlich mit STRG+C beenden und das möchte ich nicht! Noch ne Idee??
-
einfach im richtigen Forum schauen.
du brauchst sowas wie getch, das ist nicht ansi c.http://www.c-plusplus.net/forum/viewtopic-var-t-is-39324.html
http://www.datasource.de/programmierung/tab01_tastaturcodes.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-106899.html
-
er will die taste nicht abfragen, sondern blockieren.
-
wo ist der unterschied?
-
du siehst keinen? egal
hauptsache HackThaPlanet sieht einen.
-
ok, mein Fehler.
geschaut werden muss nach 33H - CONTROL-C Check
http://www.borncity.de/Library/DOSProgHB.PDF
http://www.robsite.de/daten/tutorials/ass-win.txtund ein flag gesetzt bzw. nicht gesetzt werden.
trotzdem gehört es ins Konsolenforum
-
eigentlich sollte es auch ANSI-C-mäßig gehen:
#include <signal.h> signal(SIGTERM,SIG_IGN);
bei microsoft klappt das aber oft nicht.
-
Dieser Thread wurde von Moderator/in Shade Of Mine aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hatte mich gestern bereits mit Assembler Programmierung auseinander gesetzt, da ich davon allerdings (bisher) keine Ahnung habe und es vermutlich etwas dauern würde bis ich das praktisch umsetzen kann werd ich mal versuchen mein Problem mit Hilfe der Signal-Funktion zu lösen, hab mir schon mal nen paar Texte dazu angesehen und so wie's aussieht scheint diese Funktion den CTRL+C sowie DEL Befehl zu ignorieren... werd mal versuchen das praktisch umzusetzen... Danke!
-
Funktioniert leider nicht unter MS-DOS
ist nur kompatibel zu Windows Systemen so wie's aussieht... auf jeden fall kann ich es in eine einfache Anwendung einbinden:#include <stdio.h>
#include <signal.h>int main()
{getchar ();
signal(SIGTERM,SIG_IGN);
printf("Hallo Welt!\n");
getchar();
return 0;
}und trotzdem kann ich unter MS-DOS noch mit dem Befehl: Control+C das Programm an der Stelle beenden. Hab ich was falsche gemacht? bzw sonst noch ne Idee?
-
Hi.
Scheint ziemlich tief in DOS eingestampft zu sein, diese Sache.
Den Ausstieg kannst du sicher verhindern, indem du den Interrupt 23h mit einer eigenen Interrupt-Funktion belegst, die praktisch einfach nur ein return o.Ae. macht.
Dabei koennte es aber passieren, dass trotzdem noch "^C" auf dem Bildschirm ausgegeben wird... Um das zu verhindern, muesstest du wahrscheinlich einen eigenen IRQ1 (Keyboard-IRQ)-Handler installieren. -> schon komplizierter.
-
Hab ich auch schon festgestellt *g* aber dank einiger Assembler-Gurus läufts nun doch! Sind so etwa 100 Codezeilen... deshalb will ich's hier nicht posten!
THX @ all