PDA

View Full Version : [Assembly] Filtrare interrupt tastiera


shinoby87
05-10-2008, 19:12
Salve a tutti, avrei un problema. Il portatile di un amico , un HP pavilion, ha un problema con il tasto funzione del volume che rimane premuto diminuendo il volume in modo continuo , rendendo quindi inutilizzabile l'audio sul pc. Vorrei fare un programmino che rilevi il tipo di interrupt generato dal bottone (non conosco quale interrupt generi però non credo sia relativo al int 21h poichè è un bottone speciale, bensi credo sia proprio un interrupt a parte). Sono sicuro che non venga generato un interrupt hardware per la scheda audio poiché la funzionalità si attiva insieme al SO (Provando con linux ho sentito la musica iniziale ma poi si è abbassato totalmente il volume). Purtroppo non sono esperto di assembler (non mi ricordo molto) però non credo esistano altri modi. Ho provato a fare un semplice programma , sotto windows, per la pressione di un tasto solo che il programma provoca errore e non va.

.Model small
.CODE
_inizio:
mov ah,01h
int 21h;
END _inizio

Qualcuno saprebbe darmi una mano o darmi qualche indicazione?

variabilepippo
05-10-2008, 20:44
Sotto Windows XP/NT/Vista/2003 non puoi accedere direttamente all'hardware, devi passare per le funzioni della Windows API. Prova a disabilitare i programmi HP che partono all'avvio, magari c'è anche quello che gestisce i pulsanti (il tuo amico può caricarlo solo quando ne ha effettivamente bisogno).

shinoby87
05-10-2008, 21:02
Lo gia fatto ma non c'è nessun riferimento al pulsante del volume. Per usare le api di windows quale guida potrei seguire?