» »

Enkratni zagon programa

Enkratni zagon programa

Mercier ::

Kako se naredi enkratni zagon programa za vsakega uporabnika v Windows, konkretno delam za XP, sistemu? Program se mora zagnati enkrat, potem ko se namesti, ne pri prvi prijavi uporabnika na računalnik za kar obstaja enostavno dostopen ključ v registru. Problem je predvsem v tem, da se uporabnikov hive naloži navadno šele ob prijavi in je bolj zapleteno pisat v HKU\SID\Software\Microsoft\Windows\CurrentVersion\RunOnce, kot sem si enostavno predstavljal, preden sem se lotil.

Plan v odsotnosti boljše ideje pa je tak:

Pri namestitvi v ključ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run dodam vnos za zagon programa, ki bo ob vsakem zagonu računalnika v ključu HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList prebral vse SID-e in za primerne uporabnike naložil hive ter dodal v ključ HKU\SID\Software\Microsoft\Windows\CurrentVersion\RunOnce pot do programa, ki se bo za tega uporabnika zagnal le enkrat.

Ne moti me vsakokratno poganjanje prvega programa, ker se ta itak mora zagnati zaradi drugih nalog, v tem primeru bo opravil pač še eno stvar več. Moti vse to preverjanje in nalaganje panjev. OK, če ni neke predvidene poti za to, potem bom pač trpel ... :)

darkolord ::

Hmm, ne razumem čisto.

Rad bi, da se program, ko se namesti (za vse uporabnike je skupna namestitev?), zažene za vsakega uporabnika posebej? Ob njegovi prvi prijavi al kar takoj?

Zgodovina sprememb…

Mercier ::

Namestitev je skupna za vse uporabnike, načeloma tiha namestitev, in v mapo program files. Predvidevam, da bom vključil dva pomožna programa. Eden se mora zagnati le enkrat, takrat, ko se uporabnik naslednjič prijavi v sistem. Kateri koli uporabnik in za vsakega se enkrat zažene pomožni program. Torej, ne ob zaključeni namestitvi in ne ob prvem zagonu programa. Ta program vpraša za nastavitev in jo nekam shrani. Recimo v HKLM ustvarim ključ, kamor imajo pravico pisat lokalni uporabniki.

Drugi se zažene vsakič od zagonu računalnika pred prijavo. Preveri koliko profilov uporabnikov je na računalniku, naloži panj za vsakega in v HKU\SID\Software\Microsoft\Windows\CurrentVersion\RunOnce uturi prvi program, potem pa zapiše nekam v register, da je to za ta profil opravil. In spusti ta korak pri naslednjem zagonu.

Seveda, če ni elegantnejšega načina. Teh runonce fint je več, v osnovi sem si predstavljal, da je kaj še za moj primer.

BlueRunner ::

Ali se mora program pognati na vsakem računalniku za vsakega uporabnika enkrat, ali za vsakega uporabnika natančno enkrat? Upoštevaj, da imajo uporabniki lahko tudi roaming profile...

Ne glede na to, pa je pravilna izbira, da se zagon programa vpiše v HKLM\...\Run. Tako se bo program ob prijavi vedno pognal. Prva stvar, ki naj jo naredi pa je preverba, če se je za tega uporabnika/računalnik že pognal. Če se je, potem sledi takojšen izhod, sicer pa opravi, kar mora za uporabnika opraviti in shrani zapis, da je "first run" že opravil.

Če se mora program izvesti natanko enkrat za uporabniški račun, ne glede na računalnik, kjer se to zgodi, potem lahko opravljen "first run" status shraniš v register ali v "roaming" del profila. Če se mora program pognati ntk. enkrat za uporabniški račun na vsakem računalniku, kjer je program nameščen, potem opravljen "first run" status shrniš v "lokalen" del profila.

Kakorkoli drugače se boš lotil težave, boš naredil napako:
- HKU\SID\... ni naložen, če se uporabnik še ni prijavil.
- Uporabnike se lahko doda tudi po namestitivi tvojega programa
- Uporabniški računi so lahko tudi domenski, ne samo lokalni

McMallar ::

Če imaš domenske račune (in tudi seveda AD domeno), potem to namestitev izvedi z GPO.

Edit: typo
Why can't a programmer tell the difference between Halloween and Christmas?
Because OCT31 = DEC25

Zgodovina sprememb…

  • spremenil: McMallar ()

Mercier ::

Uporabniki nimajo roaming profilov in vse račune, ki niso domenski, program sploh ne upošteva. Namestitev je avtomatizirana preko čoporativne politike.

Drugače pa, ponižno se opravičujem, malo sem vas za*e*aval. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run sem, teslo jedno, zamenjal za startup skripto, s katero sem se igral, da bi rešil problem, ki ga nimam. Startup skripta se izvede pred prijavo, pa si valjda nisem mogel nič pomagati z njo. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run itak zažene program za vsakega uporabnika, kar itak mora in lahko od tam naprej naredim vse kar je treba.

Kakorkoli, hvala!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Windows 10 z reklamami tudi v Raziskovalcu (strani: 1 2 3 )

Oddelek: Novice / Operacijski sistemi
14336430 (29994) D3m
»

Kako naj ponovno naložim xp-je? (strani: 1 2 )

Oddelek: Operacijski sistemi
685410 (4645) pilotgirl84
»

iz startup-a nemorem izbrisat porgramov...

Oddelek: Pomoč in nasveti
6886 (851) nightbodom
»

Nastavitve v Win2k.

Oddelek: Operacijski sistemi
61049 (944) pirx
»

Zagon nekaterih programov ob startu windowsov!

Oddelek: Operacijski sistemi
61851 (1694) b4d

Več podobnih tem