Hello all!
Mi servirebbe sapere se è possibile tramite un qualcosa disabilitare l'uso della tastiera...
cioè fare come se fosse scollegata...
Uso Visual Studio 2003
Grazie a chi mi aiuterà
Hello all!
Mi servirebbe sapere se è possibile tramite un qualcosa disabilitare l'uso della tastiera...
cioè fare come se fosse scollegata...
Uso Visual Studio 2003
Grazie a chi mi aiuterà
Puoi usare la API BlockInput (ma blocca anche il mouse) o creare una hook globale che scarti tutte le pressioni di tasti.
Amaro C++, il gusto pieno dell'undefined behavior.
Ma l'applicazione mia è in console win32 non è grafica :master:
Setta un'interrupt "vuoto", per la tastiera
Experience is what you get when you don’t get what you want
Cioè?!Setta un'interrupt "vuoto", per la tastiera
"Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."
L'interrupt della tastiera "occupa" la nona posizione, nella tabella dei vettori di interruzione...
Con funzioni quali dos_setvect o dos_getvect (delle quali non ricordo la corretta sintassi) contenute nell'header dos.h è possibile cabiare le funzioni standard con delle funzioni definite dall'utente (void interrupt)...
Al termine del programma basta mettere una keep per farlo terminare senza deallocare la memoria ad esso dedicata.
In questo modo si può ridefinire un interrupt della tastiera che non esegue nessuna operazione(o magari settarlo in modo da ripristinare la vecchia interruzione alla pressione di un tasto o una sequenza particolare)
EDIT:
Vabbè ecco una bozza ...
Controlla la keep se è corretto usarla in questo modo...
Infine l'interrupt della tastiera deve fare una srittura in un registro che non ricordo ... se mi viene lo posto (altrimenti non funziona niente)codice:#include <stdio.h> #include <dos.h> #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif void interrupt newInt(__CPPARGS); int main(void) { /* install interrupt handler */ _dos_setvect(9,newInt); keep(0, (_SS + (_SP/16) - _psp)); return 0; } void interrupt newInt(__CPPARGS) { }
Experience is what you get when you don’t get what you want
Non è un problema di essersi spiegati bene o male, il fatto è che non riesco a capire come vorresti gestire gli interrupt in un'applicazione console WIN32...Se non mi sono spiegato ditemelo
"Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."
In effetti, tutto quello che hai detto vale per il DOS, quando questo gira effettivamente nel PC.
La "finestra DOS" di Win32 e' una "emulazione" e non puoi gestire gli interrupt in quel modo.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ecco infatti ho chiesto aiuto a voi...
Se ci fate caso una app si chiude con CTRL+C oppure la termini dal task...
Il prof ha chiesto se riuscivamo a fare una cosa che "bloccasse" quelle due funzioni...
Così appena premi invio esci dal programma e puoi "riusare" la tastiera...
Impossibile? :master:
Il professore vi ha chiesto di evitare che il processo si chiuda dal task manager?
E a che scopo?
No MP tecnici (non rispondo nemmeno!), usa il forum.