[ prekidac @ 04.09.2002. 19:25 ] @
Pozdrav radni ljudi,
imam 2 pitanja:
1. Kako da se prilikom pokretanja sistema program koji radim pokrene nakon ostalih autorun programa
2. Kako da se iz programa pokrene default mp3 player i u istom pocne da se "svira" postojeca lista
Hvala svima !!!
[ goblin @ 05.09.2002. 00:46 ] @
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
[ -zombie- @ 05.09.2002. 01:37 ] @

mislim da je tacno da se programi iz StartUp dira startuju posle svih ostalih "autorun" metoda, ali ne verujem da se bilo gde koristi azbucni redosled (da si rekao abecedni, pa ajde :) shalim se nOrmaLL_no)..

moja ideja je da jednostavno napravish pauzu od recimo minut ili koliko vec. kada se program startuje, u glavnom dpr fajlu, dodaj cekanje od 60 ili koliko oces sekundi:

Code:

begin
....Application.Initialize;

....s:=Time;
....while Time-s<60/(60*60*24) do Application.ProcessMessages;

....Application.CreateForm(TMainForm, MainForm);
....Application.Run;
end.


ako ovo prijavi neku gresku, onda makni kod za pauzu ispod CreateForm linije, ali mozda ce tada forma morati da ti bude nevidljiva dok ne krene Application.run...


znam da nije najelegantnije resenje, ali cak i tako dobar program kao sto je wincmd ima ovakvu opciju ako je ukljucish preko command line parametara (u helpu pise da je bash za sturtup svrhu)...

ako ti treba da osigurash da je jedna druga aplikacija od koje zavisi tvoja, startovana pre tvoje, onda imam druge ideje, ali me mrzi vise da pisem. ako je to, kazi, pa cu da objasnjavam...
[ silverglider @ 05.09.2002. 17:21 ] @
Nikada nisi siguran sta sve korisnik ima podeseno da se automatski startuje (video sam ljude sa tako sarenim SysTrayom, da je dosezao skoro Start dugme), a stavljanje suvise velike pauze je mozda problematicno, ukoliko tvoj program mora odmah da pocne da radi (a ne nakon x minuta).
Po azbucnom redu radi MacOS (matori, ne X), ali slicno mozda mozes da napravis i ovde; budi samo siguran da je kljuc sa pathom u HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run za start tvog programa uvek na zadnjem mestu. Po izlasku progama, lepo obrises key, pa ga onda dodas (seljacki fazon, ali trebao bi da radi). Ukoliko ti je bas vazno i ne mrzi te, napises mali service koji presrece WM_SHUTDOWN ili restart message i samo "osigura" poslednje mesto na listi.
[ Riste Pejov @ 06.09.2002. 09:56 ] @
Mislim da nije bitno koji je redosled u Run sekciji i registry-ja.
Jedino nesto sto tebe spasava prijatelju jest da, nakon startovanja
programa jednostavno cekas da system udje u IDLE state, pa da onda tek
startujes MP3 player sa zeljenom listom
[ Makojdis @ 06.09.2002. 10:05 ] @
Mozes u win.ini da stavis run='program'
ili u system.ini u sekciji [boot] postoji opcija shell=Explorer.exe
iza ovoga samo napises putanju shell=Explorer.exe putanja
ovo bi trebalo da startuje tvoj program pri pokretanju bilo kog drugog programa
[ -zombie- @ 07.09.2002. 05:08 ] @
Citat:
Riste Pejov:
Jedino nesto sto tebe spasava prijatelju jest da, nakon startovanja
programa jednostavno cekas da system udje u IDLE state, pa da onda tek
startujes MP3 player sa zeljenom listom


a sta bi to bilo "IDLE state" na windows operativnom sistemu?
[ MoHicAn @ 07.09.2002. 05:20 ] @
To bi bilo 0% zauzeca procesora kao i na svakom drugom sistemu.
[ -zombie- @ 07.09.2002. 05:44 ] @
pa pretpostavljam da je do mog sporog racunara (p2@400) ali moj racunar nikad nije u "idle stanju". zauzetost procesora (kada iskljucim sve programe, i nista ne radim) je oko 1-2 posto, sa pikovima na 5-10 posto na svakih 5-6 sekundi...

pretpostavljam da je to zbog svih mogucih servera i servisa koje sam instalirao ja, i koje po defaultu instalira win2000.

sta god da je, ne moze se oslanjati na to.

moze se recimo cekati "dovoljno niska procesorska zauzetost" od recimo manje od 5 posto, ali to je veoma zavisno od brzine racunara...

i sta vise, kada se moj sistem podize, dok se josh ne startuju svi programi, zauzetost procesora nije konstantna na 100% kao sto bi mozda neko ocekivao, vec skace od oko 0% do 100%, pa ni to nije bash sigurno...
[ prekidac @ 19.09.2002. 18:26 ] @
Toliko ste spominjali tajmere da sam dosao do toga da nije bitno kada ce program da se startuje, vec kada ce da se pokrene sama akcija u programu. Nju cu da stavim na tajmer pa ce ona da se pokrene "zadnja". A, koji je najkraci i najprakticniji kod kod za autorun aplikacije?
Hvala vam mnogo na pomoci, idejama, ...
[ goblin @ 21.09.2002. 02:57 ] @
Nisam te bas najbolje shvatio, sumnjam da su i ostali... sta mislis pod "kodom za autorun aplikacije"?
[ prekidac @ 21.09.2002. 12:06 ] @
sta da uradim da bi se aplikacija startovala pri podizanju sistema
[ Ilija Studen @ 21.09.2002. 14:38 ] @
Pusti Windows da odradi to za tebe... Kopiraj shortcut u StartUp direktorijum.

Ovo nikad nisam radio, ali trebalo bi da radi.
[ kingrale @ 07.10.2002. 23:17 ] @
Khm, kad vec nagadjamo.. ja se kladim da windows gleda pri startu redoslijed u registriju..

uses Registry;

procedure upis_u_autorun_registry;
var regist: TRegistry;
begin
regist:=TRegistry.Create;
try
regist.RootKey:=HKEY_LOCAL_MACHINE;
regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
//ovo true znaci da se kljuc pravi ako vec nepostoji
regist.WriteString('Kljuc', 'Vrijednost);
regist.CloseKey;
finally
regist.Free;
end;
end;

eh,sad ako je zadnji upis u tom odjeljku registrija,zadnji ce se i startat od svih programa.