Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Spustanie CMD/BAT pred startom grafickeho rozhrania windows

KEOSAN (958)|30.6.2010 20:29
Zaujimalo by ma, ci ste niekto skusal spustat davky, alebo nejake utilitky pred startom grafickeho rozhrania Windows 2000/XP/Vista/W7....?

Napr. povedzme subory ako ntuser.dat v profile su zamknute. Povedzme, ze by som chcel pred startom grafickeho rozhrania spustit nejaku davku, alebo utilitku, ktora by nieco urobila, prv nez naskoci cely system. Napr. synchronizovat systemovu particiu so zalohou - obnova predchadzajuceho stavu.

Pokial totiz system nabehne, je to uz neskoro riesit. Iste subory budu bud aktivovane, alebo zamknute.

V starych systemoch ako Win95,Win98 sa to dalo jednoducho realizovat cez autoexec.bat, ale v novsich to neni takto mozne.
zsdx (2098)|30.6.2010 21:34
[quote=KEOSAN;385603]Zaujimalo by ma, ci ste niekto skusal spustat davky, alebo nejake utilitky pred startom grafickeho rozhrania Windows 2000/XP/Vista/W7....?[/quote]

Text-mode programy pred bootem graf.rozhrani se daji spustit v klici HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
(tak se napr. spousti Avastuv boot scan celeho systemu).
KEOSAN (958)|1.7.2010 08:39
[quote=zsdx;385631]Text-mode programy pred bootem graf.rozhrani se daji spustit v klici HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
(tak se napr. spousti Avastuv boot scan celeho systemu).[/quote]

To znie celkom nadejne. Skusal som tam za

autocheck autocheck*

pridat este spustenie napr. c:\davka.bat alebo CMD.EXE /C C:\davka.bat

ale zial, nefunguje to....
Dojigiri (1629)|1.7.2010 09:25
Mám pocit, že dávky takhle nefungujou, bylo by potřeba si na to asi udělat .exe program. Navíc tento program nemůže používat Windows API, protože ještě není dostupný (proto zřejmě nejdou dávky), ale musí používat Windows NT Native API (v principu jde o api podobný WinAPI, akorát funkce se jmenujou jinak, nejsou moc dobře nikde dokumentovaný, a např. entry point aplikace není main/wmain, ale NtProcessStartup ... atd.).

Taky zde: http://technet.microsoft.com/en-us/sysinternals/bb897447.aspx
Aytech (475)|1.7.2010 09:28
Muzes treba pouzit logon VB skript
KEOSAN (958)|1.7.2010 14:55
[quote=Aytech;385756]Muzes treba pouzit logon VB skript[/quote]

To nefunguje tak ako myslim....
KEOSAN (958)|1.7.2010 14:56
[quote=Dojigiri;385754]Mám pocit, že dávky takhle nefungujou, bylo by potřeba si na to asi udělat .exe program. Navíc tento program nemůže používat Windows API, protože ještě není dostupný (proto zřejmě nejdou dávky), ale musí používat Windows NT Native API (v principu jde o api podobný WinAPI, akorát funkce se jmenujou jinak, nejsou moc dobře nikde dokumentovaný, a např. entry point aplikace není main/wmain, ale NtProcessStartup ... atd.).

Taky zde: http://technet.microsoft.com/en-us/sysinternals/bb897447.aspx[/quote]

Toho som sa obaval, ze to budu musiet byt specialne verzie :( Skoda.
Zacinam rozmyslat, ci by nebol lepsi nejaky dualboot s DOS + Win. Spusti sa DOS, urobi co ma, potom Windows z druhej partisny...
Dojigiri (1629)|1.7.2010 16:02
No, ale zase pokud je třeba měnit něco v instalaci Win a ta by byla na NTFS, tam se zase DOS asi moc nedostane (mám teda pocit že existoval nějakej NTFS driver pro DOS ale ten byl pokud se nepletu pouze pro čtení). To už potom teda spíš dualboot 2 windows (klidně stejných), druhá instalace by sloužila jako servisní pro tu první (a naopak) - kdyzi jsem v dualbootu provozoval současně XP + 2k, což mělo jistý výhody že se daly velmi snadno upravovat navzájem systémový soubory (např. nahradit explorer.exe upravenou verzí se změněným stringem "Start" :) apod.).
KEOSAN (958)|3.7.2010 15:21
Pouzival by som tam FAT32. Na system nepotrebujem NTFS.
|Mio| (1333)|4.7.2010 16:28
Windows Vista a vyssi si s FAT32/exFAT na systemove partition neporadi.

Pokud potrebujes synchronizovat zalohu se stavajicim, da se to bez problemu delat programy pro to urcenymi az po spusteni systemu, mam na mysli drive backup, acronis a dalsi, ctou soubory bitove pres jadro systemu a nemaji tudiz zadny problem s uzamcenymi ci otevrenymi soubory.

Co se tyce spousteni primo .bat souboru lze to, jenze musis volat cmd.exe, vyhradit si pamet a osetrit si veskere vystupy, jinak dopadnes spatne. A stejne se nedostanes k nekterym souborum protoze ty uzamyka primo ntloader pri jejich zavedeni.

Funkcni reseni by mohla byt kombinace multiboot linux+Win, v podstate skript pro nektery ze zavadecu, ktery na liche spusteni zavede jadro linuxu, provede dany davkovy soubor, restaruje a na sudy se zavedou Win. Lichy/Sudy se da resit nastavovanim 1 bitu, nebo podminkou existence souboru, promenne a podobne.
KEOSAN (958)|6.7.2010 08:48
Cez CMD.exe som to skusal, nepomohlo to.
Dojigiri (1629)|6.7.2010 09:59
No, "nejsprávnější" cestou (z hlediska Microsoftu, abych tak řek) by asi bylo udělat si ten .exe s využitím Native API (IMHO to zase tak těžký nebude, ale záleží jak moc si člověk rozumí s C, a lze tam pak nabastlit v podstatě cokoliv - a IMHO to bude jednodušší než to řešení s Linuxem); a pokud je to na FAT32, tak ta varianta s DOSem by měla fungovat taky.