[ Pera_Anarhista @ 06.07.2002. 17:36 ] @
hocu da napisem programce, koje ce raditi nevidljivo u pozadini. Uvek kada korisnik promeni desktop, program vraca sliku iz njegovog resource dela exe fajla... Elem, posto slika mora svaki put da se kopira na disk iz resursa, mislio sam da tu akciju stavim u poseban thread... Evo sta sam ja napisao (u delu za obradu poruka):

// hThread je globalna varijabla
case WM_SETTINGCHANGE: // Neko je nesto menjao
{
if(wParam==SPI_SETDESKWALLPAPER){ // Da li je neko menjao desktop ?
DWORD TrenutnoStanje;
GetExitCode(hThread,&TrenutnoStanje);
if(TrenutnoStanje!=STILL_ACTIVE){ // ako thread ne postoji, napravi ga !
DWORD dwThreadId;
hThread=CreateThread(NULL,
0,
ThreadProcedura,
NULL,
0,
dwThreadId);
if(hThread==NULL) {
PostquitMessage(0); // Ako ne radi thread, izadji
return 0;
} else {
CloseHandle(hThread);
};
};
};
return 0;
}

Da li ce ovo da radi ono sto je zamisljeno ? (uradi ThreadProceduru, ali ako ona vec radi, onda samo nastavi dalje)

Ceo kod je na ovoj adresi: http://www.students.ksz.ch/~ristin/downloadz/virus.cpp

P.S. Nema veze sa temom, ali - kako da ukljucim da mi es forum detektuje space u poruci ?? (posto ne uvlacim tekst sa tab)
[ Dragi Tata @ 06.07.2002. 18:01 ] @
Otprilike je OK na prvi pogled.

Jedino bih ti najtoplije savetovao da ne koristiš direktno CreateThread, već _beginthreadex, ako koristiš ma koju CRT funkciju.