Ciao a tutti! Sto scrivendo un piccolo programma che tramite la pressione di una o più hotkey (stabilite dall'utente) riesce a riprodurre un suono dopo un certo intervallo di tempo (usando la Sleep()). Purtroppo il tutto accade sequenzialmente. Mi spiego meglio: date 2 hotkey "A" e "B" con "A" che riproduce un suono dopo 10 secondi e "B" dopo 15, se premo "A" e dopo 1 secondo "B" il programma aspetta prima 10 secondi per riprodurre il suono collegato ad "A" e poi ne aspetta altri 15 per riprodurre il suono collegato a "B". Io invece vorrei che il programma faccia partire contemporaneamente un tot di istruzioni (Sleep() e suono compresi) per ogni hotkey e riproducesse il suono esattamente dopo l'intervallo di tempo stabilito.
Ho trovato le funzioni CancelWaitableTimer(), CreateWaitableTimer(), OpenWaitableTimer() e SetWaitableTimer(), ma non sono sicuro che possano fare ciò che desidero e anche se fosse non saprei come metterlo in pratica...
Questa è la porzione di codice interessata:
codice:
RegisterHotKey(NULL, 1, 0, 'A');
RegisterHotKey(NULL, 2, 0, 'B');
RegisterHotKey(NULL, 3, 0, 'C');
MSG msg={0};
while(GetMessage(&msg, NULL, 0, 0) != 0) {
switch(msg.wParam) {
case 1:UnregisterHotKey(NULL,1);
Sleep(10000);
PlaySound(TEXT("suonoA.wav"), NULL, SND_SYNC);
RegisterHotKey(NULL, 1, 0, 'A');
break;
case 2:UnregisterHotKey(NULL,2);
Sleep(15000);
PlaySound(TEXT("suonoB.wav"), NULL, SND_SYNC);
RegisterHotKey(NULL, 1, 0, 'B');
break;
case 3:goto fine;
}
}
fine:
UnregisterHotKey(NULL,1);
UnregisterHotKey(NULL,2);
UnregisterHotKey(NULL,3);
Qualcuno può aiutarmi? Grazie in anticipo