Windows - Programcsoportok futtatása egy alkalommal

forráskód letöltése
Képzeljük el a következő szituációt: egy vállalatnál fel kell hívni az összes dolgozó figyelmét, hogy tekintsék meg a cég egyik weboldalán megjelenő közérdekű információkat és szükség esetén reagáljanak rá. Több megoldás is létezik a hálózaton keresztüli értesítés küldésre, mi most ezek közül ismertetünk egyet. Adott gépre történő bejelentkezés után egy alkalommal elindul az Internet Explorer, betöltve a szükséges weboldalt, majd az ebből való kilépés után elindul az Outlook Express levelezőkliens, ahol megírhatja a dolgozó a véleményét és csak ezután lindul el az operációs rendszer.
Cikkünkhöz mellékeltünk egy registry állományt. Futtatásával elérhető, hogy a következő rendszerindításnál elinduljon az Internet Explorer és utána az Outlook Express. Használata előtt az Explorer által betöltendő honlap címét módosítani kell egy valós címre.
A megoldás a regisztrációs adatbázisban található egyik speciális kulcs használatával valósul meg. Indítsuk el a REGEDIT.EXE programot és keressük meg a következő helyet:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
Az itt létrehozott alkulcsokban elhelyezett bejegyzések sorban egymás után futnak le. A sorrendiséget minden esetben a kulcs és a bejegyzés neve alapján határozza meg az operációs rendszer, tehát csak alfanumerikus karaktereket használhatunk - célszerűen növekvő sorrendben. Futtatás után törlődik az alkulcs, teljes tartalmával együtt és a következő rendszerindításnál már hatástalan. Újbóli használatához ismételten létre kell hozni. Nézzük meg egy példán keresztül, hogy mit jelent ez:
A fenti kulcson belül készítsünk egy új alkulcsot: kattintsunk az egérrel a Szerkesztés > Új > Kulcs (Edit > New > Key) menüre. Nevezzük el "001"-nek. Ezen belül hozzunk létre egy új karakterláncot, aminek a neve "01", értéke pedig a következőképpen alakul:
  • DLLfájlnév|függvénynév|argumentumok
  • ||utasítás
Feladatuk gyakorlatilag mindkét szintaxis szerint megvalósítható. Az Internet Explorer az IEXPLORE.EXE állomány futtatásával indítható. Az alábbi példánkban a "001" alkulcs alatt létrehoztunk egy új munkafolyamatot "01" néven, amely elindítja az Explorer-t és betölti és megjeleníti a "www.server.local/info.html" oldalt.
"01"="||iexplore www.server.local/info.html"
Ha a bejegyzést nem egy alkulcs alatt hozzuk létre, hanem közvetlenül a "RunOnceEx"-ben, akkor teljesen hatástalan lesz, nem indít el semmit és ennek megfelelően törlődni sem fog futás után. A || karakterek szintén kötelezőek.
Az Explorer már fut, következik az Outlook Express (MSIMN.EXE) indítása. Hozzunk létre a "001" kulcs alatt egy új karakterláncot "02" néven és járjunk el a fentiek alapján:
"02"="||msimn"
Fontos, hogy az Outlook Express csak az Internet Explorer-ből való kilépés után indul el és az operációs rendszer pedig akkor, ha az Outlook Express-ből is kilépett a felhasználó. Ezzel valamilyen szinten rákényszerítjük a honlap elolvasására és a véleményének E-mail-ben való elküldésére. A teljes registry alkulcs tehát így néz ki:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\001]
"01"="||iexplore www.server.local/info.html"
"02"="||msimn"
A munkafolyamatok számát illetően nincs korlátozás. A névnek sem kötelező "01"-el kezdődnie, lehet "Line1", "Line2", "Line3", stb., lényeg, hogy sorba rendezhetően tartalmazzon alfanumerikus karaktereket. Ugyanez érvényes a példánkban megadott "001" alkulcsra. Ebből is létrehozható több, más szerepe nincs, mint az indítandó programok csoportosítása.
A fentiek működése független attól, hogy a kliens munkacsoportos vagy Active Directory hálózatban található. Bár a csoportházirend lehetőséget ad rendszerindításnál programok futtatására, de nem csak egyszer, hanem minden alkalommal. A csoportházirend ezen része nem írja felül a "RunOnceEx" kulcsot a regisztrációs adatbázisban. Fontos még tudni, hogy a programok futtatása mindig a felhasználó bejelentkezése után történik meg, legyen az automatikus vagy kézi bejelentkezés. Ezt az interaktivitást igénylő alkalmazások jogosultságainak kiosztásánál vegyük figyelembe és ne próbálkozzunk olyan programok indításával, melyeket az adott felhasználó nem futtathat.
További felhasználási ötletek:
  • Programtelepítés utáni DLL regisztrációk futtatása.
  • Átmeneti fájlok törlése.
  • Programtelepítés után az alapvető beállításokat elvégző segédprogram, varázsló, stb. futtatása.
  • Vírusirtó program telepítése után, víruskeresés futtatása.
  • Befejezetlen hálózati munkafolyamatokra való visszacsatlakozás.