• 4 odgovora
  • 3.501 pregleda
pitanja [win32] 01.05.2002. u 23:41 · pre 298 meseci #1
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
Potpis
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
Re: pitanja [win32] 02.05.2002. u 00:06 · pre 298 meseci #2
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

Potpis
IOCC
Re: pitanja [win32] 02.05.2002. u 22:44 · pre 297 meseci #3
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
Potpis
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
Re: pitanja [win32] 03.05.2002. u 20:33 · pre 297 meseci #4
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. ;)
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: pitanja [win32] 05.05.2002. u 15:15 · pre 297 meseci #5
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme