[ Mikky @ 01.05.2002. 23:41 ] @
1. hteo bih da mi program loguje koji se sve programi startuju pa nisam siguran kako ovo da odradim, da li postoji neka poruka koju win32 generise kada se startuje program (pa da onda preko system wide hook-a cekam na nju) ili neko drugo obavestenje

2. da li je moguce saznati o kakvom programu se radi ako imam njegov handle (HWND)
konkretno hteo bih da proverim da li je prozor edit kontrola

3. kada se windows gasi (znaci shutdown ili reboot) da li on salje programima odredjene poruke koje ih obavestavaju o tome?
jer hteo bih da odradim neki posao npr da flushujem buffer u fajl pre nego sto se windows ugasi
[ Dragi Tata @ 02.05.2002. 00:06 ] @
Za 3. (jesam naopak):

Windows aplikacije primaju poruku

WM_QUERYENDSESSION

kada se neko logout-uje.

2. Koristi funkciju GetClassName

1. Trenutno mi ništa ne pada napamet. Razmisliću, pa ću da ti javim

[ Mikky @ 02.05.2002. 22:44 ] @
ok ajde ovako, umesto 1. kako da saznam da li je neki program pokrenut
tj da dobijem neku notifikaciju da je npr windows commander startovan
[ leka @ 03.05.2002. 20:33 ] @
Mikky, ja bih pre svega toga sto nameravas da radis proverio dokumentaciju od event logger-a, jer pretpostavljam da on moze to sam po sebi da loguje, a ako moze da loguje eto ti resenja! Ja nisam NT administrator, ali se secam da to cudo postoji u Windows-u. ;)
[ SEH @ 05.05.2002. 15:15 ] @
AFAIK, Windoze ne salju nikakvu poruku kad je novi proces pokrenut. Jedini nacin jest da koristis toolhelp32 funkcije u nekom intervalu. Recimo, prvo napravis timer CreateWaitableTimer() i nastelis ga preko WaitForSingleObject() na otprilike 100ms. Ne mislim da se u tom intervalu neki program moze pokrenuti i zavrsiti, a ako i moze, tada vjerojatno i nije previse vazan. E sada svakih 100ms skeniras aktivne procese preko CreateToolhelp32Snapshot() pa onda Process32First() i Process32Next(). U PROCESSENTRY32 strukturi ti se nalaze sve informacije o procesu (ukljucujuci PATH) tako da na taj nacin mozes lao odrediti da li se radi o Windoze Commanderu ili nekom drugom programu. Tu listu procesa (ili cak samo njihov PID) mozes spremati u neko polje i onda kasnije provjeravas za svaki proces da li se nalazi u tom polju. Ako nije - tada je stvoren, tj. novi je program pokrenut.