cs_grems
Messages postés50Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention20 avril 2004
-
8 avril 2004 à 20:57
G0ss3Yn
Messages postés65Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 5 novembre 2010
-
15 avril 2004 à 22:54
salut !
Mon appli est censée détecter quand des nouveaux *.hd arrivent dans un dossier . Lorsque ca arrive, une boite de dialogue s'ouvre et une musique se met en route jusqu'à ce qu'on ferme la dialogBox. mai le pb c'est que la musique ne se met pas en marche et que la détection ne marche plus (avant je fonctionnait simplement avec WIN32 )
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
int i=0;
int new_nb=0,old_nb=0;
HANDLE hd;
WIN32_FIND_DATA w32hd;
HWND hDlg;
//détection des *.hd
while(1){
int nb=0; //sera le nombre de fichiers *.hd
char leshd[256] = "*.hd"; //tableau stockant les fichiers *.hd
//prendre le 1er fichier
hd = FindFirstFile ( leshd, &w32hd );
//si il y a un autre fichier recommencer l'operation
while (FindNextFile( hd, &w32hd)) nb++;
//si il y a des fichier avec l'extension .hd
if (hd!=INVALID_HANDLE_VALUE) new_nb = nb;
//si la nouvelle valeur de nb est différente de l'ancienne valeur (+ de .hd)
if (new_nb >> old_nb){
//mise à jour de nb
old_nb = new_nb;
hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
ShowWindow(hDlg,SW_SHOW);
MSG msg;
while(GetMessage(&msg,hDlg,0,0)==TRUE)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
//en cas de vidage mensuel du dossier
else old_nb = new_nb; //remise à jour de la valeur de nb
Sleep(3000);
i++;
}
return 0;
}
LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
{
int Select;
switch(message)
{
case WM_COMMAND:
Select=LOWORD(wParam);
switch(Select)
{
//lecture d'un son *.wav
PlaySound("d:\\dog.wav",GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
//si appui sur OK, fermeture de la boite de dialogue
case IDOK:
EndDialog(Dlg,0);
PostQuitMessage(0);
return TRUE;
}
default:
return FALSE;
}
}
Si vou voyez quel pourrai être le problème , n'hésitez pas !!
Merci :)
Attention !! ne me mouillez po ! il parait ke je deviendrait méchant ...
G0ss3Yn
Messages postés65Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 5 novembre 2010 15 avril 2004 à 22:54
Salut !
J'ai remodeler ton code tout d'abord, afin de le comprendre...
Et en effet il ne marche pas... :(
J'ai donc changé le code 'création de la boite de dialog' et remplacé par une MessageBox et ton PlaySound...
Ca marchait toujours pas... :(
Et puis tout d'un coup, j'ai vu que tu avais mis deux >> au niveau du test de supériorité... Et avec un seul ça marche, la MessageBox s'affiche et lorsque je click sur Ok, j'ai un Horrible Bip ! qui sort des haut parleur :D
Voilà le code modifié si tu veux tester...
if (new_nb > old_nb)
{
//mise à jour de nb
old_nb = new_nb;
// hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
// ShowWindow(hDlg,SW_SHOW);
MessageBox( NULL, "Nouveau !", "TEST", MB_OK ) ;
PlaySound("d:\\dog.wav",GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
MSG msg;
}
Et aussi, ton PlaySound, il faut le mettre dans le
case IDOK :, sinon il est schinté par le switch( select )...
Voilà, j'espère que ton problème est résolu...
@+