1. malo teze pitanje... nisam siguran da znam odgovor, ali bi teorijski trebalo da napravis manji program sa thread-om niskog prioriteta koji ce da proverava aktivnost sistema. momenta kada nema aktivnosti, zove glavnu aplikaciju i gasi se... jedino ne znam na kom nivou bi trebalo da resis "proveravanje aktivnosti...".
Ma, sigurno ima neki laksi nacin... probaj da eksperimentises sa Run, RunOnce i RunOnceEx (mozda bi program trebalo da se zove "zzzz" u slucaju da Windows poziva po azbucnom redosledu programe (?)). Mislim da se (ali nisam siguran) StartUp direktorijum unutar programs menija poslednji proverava (ma probaj, programiranje ti 80% isprobavanje na slepo dok se ne provale fore, onda je 100% rutina :)
Program bi pri gasenju mogao da proverava i da li ti se poziv programa nalazi na bas poslednjem mestu u listi... ali ovo je samo teorijski, nikada nisam isprobavao ovako nesto (nadam se da sam makar malo pomogao)
2. ako zelis da pokrenes odredjenu M3U listu, najjednostavnije mozes preko ShellExecute (dodaj shellapi u uses):
ShellExecute(Self.Handle,'open', PChar(...lokacija_tipa_string...),'','',SW_SHOW);
Ako hoces samo da pokrenes program (bez parametara), moras malo da brckas po registry-ju. Pronadjes u CLASSES_ROOT odgovarajucu ekstenziju, procitas default key, pa trazis tu podgranu i unutar nje Shell/Open/Command (samo odfiltriras %1 koji se skoro uvek nalazi skroz na kraju) i tu vrednost posaljes kao parametar (npr.) funkciji ShellExecute... ako ti treba bas ovo, javi mi, imam negde ceo proces u kodu...
pozdrav, Milan
Don't try to impress me... I'm good !