Jakub Jelínek oznámil vydání verze 15.1 (15.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 15. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Staronovým vedoucím zůstává Andreas Tille.
Jason Citron končí jako CEO Discordu. Od pondělí 28. dubna nastupuje nový CEO Humam Sakhnini, bývalý CSO Activision Blizzard.
Článek na Libre Arts představuje baskytarový multiefekt Anagram od společnosti Darkglass Electronics. S Linuxem uvnitř (licence, GitHub).
Městský soud v Praze vyhlásil rozsudek, který vyhověl žalobě novináře Jana Cibulky, který s podporou spolku IuRe (Iuridicum Remedium) požadoval omluvu od státu za to, že česká legislativa nařizuje operátorům uchovávat metadata o elektronické komunikaci. To je přitom v rozporu s právem. Stát se musí novináři omluvit a zaplatit náklady řízení. Především je ale součástí přelomové rozhodnutí o nelegálnosti shromažďování dat a o
… více »Americké technologické firmy Apple a Meta Platforms porušily pravidla na ochranu unijního trhu, uvedla včera Evropská komise (EK). Firmám proto vyměřila pokutu – Applu 500 milionů eur (12,5 miliardy Kč) a Metě 200 milionů eur (pět miliard Kč). Komise to oznámila v tiskové zprávě. Jde o první pokuty, které souvisejí s unijním nařízením o digitálních trzích (DMA). „Evropská komise zjistila, že Apple porušil povinnost vyplývající z nařízení
… více »Americká společnost OpenAI, která stojí za chatovacím robotem ChatGPT, by měla zájem o webový prohlížeč Chrome, pokud by jeho současný majitel, společnost Google, byl donucen ho prodat. Při slyšení u antimonopolního soudu ve Washingtonu to řekl šéf produktové divize ChatGPT Nick Turley.
Po roce vývoje od vydání verze 1.26.0 byla vydána nová stabilní verze 1.28.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.28.
Byla vydána nová verze 10.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 211 vývojářů. Provedeno bylo více než 2 800 commitů. Přehled úprav a nových vlastností v seznamu změn.
42 svobodných a otevřených projektů získalo finanční podporu od NLnet Foundation (Wikipedie).
Jako správný slepovač kódu jsem se své role ujal v nemalém množství a to, co z toho vypadlo, zapřičiní infarkty nemálo lidem :-/
Inu, všechno začalo tak, že jsem nastoupil do práce. V síti byl novell netware 5.1 a všichni se na něj připojovali. Začal jsem si tedy pohrávat s runscripty netware. Dá se přes ně nastavit dosti věcí, ale ve finále je to stále jen okrajové. Oči mi zazářily, když jsem spatřil v dokumentaci k netware, že umí spouštět i exe soubory :). Začal jsem tedy přemýšlet, jak nato. Nejsem žádný programátor, ani mne programování nebaví, tak jsem si řekl, že se vydám cestou registrů :).
Ve firmě máme zakoupeno pár licencí na Visual Studio 2005/2008/2010, ale EE verze pro slepovače postačuje :). Po chvilce googlení jsem se dohrabal k ukázkovým zdrojákům pro práci s registry. Po delší době jsem nakonec vzorové příklady tak nějak pochopil, podařilo se mi rozběhat a donutit VS2005EE, aby můj projekt kompiloval staticky. V průběhu času jsem si s pomocí dalších příkladů a dokumentace dopsal funkce pro další práci s registry, jelikož můj prvotní funkční projekt uměl jen zapisovat řetězové hodnoty a hodnoty DWORD.
Ve zdrojáku mám přes 90 procent klíčů popsaných (mám totiž problémy si zapamatovat, co který klíč v registrech dělá, kdo by také neměl, v takovém množství). Takže ve finále tento projekt také beru jako dokumentaci zajímavých klíčů a hodnot registrů. V projektu jsem samozřejmě použil jen ty klíče, které zde potřebujeme, nebo se prostě hodí, ostatní blbinky jsem zbytečně nepřidával, nebo jsem je zanesl jako komentáře. Také zůstalo v projektu pár dalších starých klíčů, které už třeba nefungují (také je tam nepoužívám), nechal jsem je jen jako zakomentované info :).
Nu a jakožto neprogramátor jsem to napsal zřejmě asi dosti prasácky :-/. Úmyslně jsem třeba odstranil z projektu všechny výjimky, takže zápis a mazání probíhá stylem : "buď se to tam v těch registrech objeví, nebo ne :P". V otázce binárního zápisu do registrů jsem musel kontaktovat kamaráda, aby pomohl. Chtěl jsem totiž jednoduše vložit do zdrojáku HEX vyexportovaný z registrů do *.reg souboru a ten následně fouknout zpět pomocí projectz.
Pár featurek z projektu k nakousnutí (abychom věděli, co nás čeká):
Myslím si, že v dnešní době nejdu se skriptem (ano, je to psaný jak skript :), tak proto skript ) s křížkem po funuse a ještě se určitě dosti lidem hodí (když né kód, tak seznam klíčů). Na Win7 se chystám, tak uvidíme. Ovšem blíží se doba, kdy se místo Netware nasadí MS FS+AD, tak nebude už ani třeba.
Projectz, jak jsem ho nazval, se skládá ze dvou souborů a vypadá následovně (u některých komentářů z mého kolouščího mládí se asi dost zasmějete, ale nechám je tam, prostě mi to patří :) ):
projectz.cpp/* ######################################################################### ######### author : Max Devaine ################## ######### contact : maxdevaine@volny.cz ################## ######### consultant (WriteBinary) : Jiri Nemec ################## ######################################################################### ######### license : Creative Commons (by,sa) ################## ######################################################################### ######### Sources : ################## ## http://www.radekchalupa.cz/clanky/default.aspx?kod=205&obsah=18 ## ## http://msdn.microsoft.com/en-us/library ## ######################################################################### */ // TODO : // - Implementovat nastavení práv pro některé klíče v registrech (kvůli umožnění uživatelům nastavení režimu spánků apod. věcem) - RegSetKeySecurity Function // - Implementovat runas fci na msi instalační shity, na které běžně runas nejde #include "registry_all.h" int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { /***** Soubory *****/ CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\bcgr\\background.bmp","C:\\windows\\background.bmp",FALSE); //pozadí při spuštění PC na logovací obrazovce CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\logo\\OEMINFO.INI","C:\\windows\\system32\\OEMINFO.INI",FALSE); //nakopíruje (nastaví) informace o podpoře ve vlastnostech na "Tento Počítač" -> "Informace o odborné pomoci" CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\logo\\OEMLOGO.BMP","C:\\windows\\system32\\OEMLOGO.BMP",FALSE); //nakopíruje (nastaví) logo ve vlastnostech na "Tento Počítač" //c:\WINDOWS\system32\RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove //tento příkaz odstraní rychle bez uživ. zásahu messenger, spouštím to v batáku (tady to je jen jako info)... //c:\WINDOWS\system32\RUNDLL32 ADVPACK.DLL,LaunchINFSection %windir%\INF\communic.inf,Hypertrm //instalace Hyperterminalu //c:\WINDOWS\system32\RUNDLL32 ADVPACK.DLL,LaunchINFSection %windir%\INF\communic.inf,HypertrmUninstall //odinstalace Hyperterminalu CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\fonts\\PF_C128.ttf","C:\\windows\\Fonts\\PF_C128.ttf",FALSE); //zkopíruje font pro generování čárových kodů CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\fonts\\PF_C39.ttf","C:\\windows\\Fonts\\PF_C39.ttf",FALSE); //zkopíruje font pro generování čárových kodů AddFontResource("C:\\windows\\Fonts\\PF_C128.ttf"); //nainstaluje font AddFontResource("C:\\windows\\Fonts\\PF_C39.ttf"); //nainstaluje font WriteRegistryFonts(); //instalace fontů pro generování čárového kodu UPDATE:možná to už nejni důležité vzhledem k funkci "AddFontResource" //SleepEx(10000,true); //chvilku počká, položka je na zkoušku, aby bylo vidět, pod jakými právy se proces spouští(zda funguje externí skript na povyšování práv) a zda se vůbec spouští /***** Prasarna ****/ //WriteRegistryStartEAK(); //pěkná prasárnička kvůli vypnutí spouštění HPéčkovské utilitky na klávesové zkratky, je to pitomost, ale necham to tu, abych si pripominal, jaky jsem byl vul /***** Tuning section ****/ WriteRegistryLPT(); //nastaví LPT timeout na jedničku, čímž by se měl urychlit tisk na lpt port WriteRegistryMasterBrowser(); //vypne snahu win o získání statusu hlavního prohlížeče WriteRegistryNTFSoptimise(); //zapne zaznamenávání času na NTFS posledního přístupu k souboru, zapne podporu dlouhých názvů souborů na FAT, rezervuje větší místo v MFT pro soubory, povolí vytváření krátkých názvů souborů na NTFS kvůli kompatibilitě se starším SW (DOS atd.), vypne funkci pro krátké přípony souborů (kdy např. htm a html je brán jako jeden a ten samý soubor) WriteRegistryNumlock(); //zapne NumLock po naběhnutí win WriteRegistryAsocciations(); //nastaví seznam povolených souborů, u kterých nebude vyskakovat trapný okno, zda opravdu chceme spustit danou aplikaci WriteRegistryAutoTPrinters(); //vypne automatické procházení sítě, které mj. i automaticky nainstaluje různé síťové tiskárny a pak je v tom jenom bordel WriteRegistryStartMenu(); //maže klíč nabídky start a oblíbené(v IE) čímž se po novém startu PC docílí nového sestavení tohoto klíče a tím pádem se nabídky sestaví podle abecedy WriteRegistryStartMenuItems(); //nastavuje položky v menu (jako zobrazit sitova nastevni, tiskárny atd.) WriteRegistryBootOptimise(); //zapne optimilazaci spuštění systému WriteRegistryBSODAutorestart(); //vypne automatický restart pc při BSOD WriteRegistryNoFFconnection(); //No filefolder connection => zakáže automatické propojení síťových souborů a složek (sosneš si webovku, smázneš u ní soubor index.htm a smázne se ti i příslušný adresář, protože jsou propojený) WriteRegistryHiddenFilesPB(); //zakáže zobrazení skrytých a systémových souborů, zakáže obnovu oken, které byly spuštěny před vypnutím systému WriteRegistryHiddenFiles(); //zakáže/povolí zobrazení skrytých souborů na jiném místě (pak nelze změnit nastavení skrytých souborů a jsou natvrdo skryté) WriteRegistryHiddenUser(); //skryje uživatele v login obrazovce WriteRegistryCleanWiz(); //vypne dementního průvodce vyčištěním pracovní plochy //WriteRegistrySleepOFF(); //vypne šetřič obrazovky a zakáže vypnutí monitoru WriteRegistryPersistent(); //nastaví automatické ukládání nastavení připojených síťových jednotek WriteRegistryBkgr(); //nastaví barvu pozadí, když je barva pozadí tmavá, tak jsou popisky ikon bílé a když je pozadí světlé, tak jsou popisky černé. Toto automatické MS nastavování barvy je fakt skvělý :(. Zatím jsem nepřišel, jak ručně zvolit barvu popisku (ale myslím, že to jednoduše nepůjde, koukal jsem do registrů a barvu popisků to zřejmě bere z barvy onoho pozadí, které se skládá asi ze třech čísel (barev)) WriteRegistryBkgrDef(); //nastaví defaultní barvu pozadí WriteRegistryDiskSpaceCheck(); //zapne kontrolu volného místa na disku (ve firmě, nebo u méně znalých uživatelů je to lepší) //WriteRegistryLinkIgnoreHKCU(); //zakáže vyhledávání síťových zástupců //WriteRegistryLinkIgnoreHKLM(); //zakáže vyhledávání síťových zástupců WriteRegistryPrefetch(); //vypne Prefetch WriteRegistryAutoChkdsk(); //nastaví timeout pro autochkdisk WriteRegistryAClearPGfile(); //nastaví, aby se při vypnutí PC nečistil stránkovací soubor (kvůli rychlosti, na přehnanou bezpečnost sere pes a uživatelé piskovaly kvůli pomalosti :-/) //WriteRegistryBgr(); //nastavení obrázku na pozadí na prac. ploše (raději nenastavovat, uživatelé by mne asi zabili :D ) WriteRegistryBgrDef(); //nastavení obrázku na pozadí při přihlášení (Defualt pro new usera) WriteRegistryIEprint(); //nastaví 100procentní velikost v náhledu při tisku pomocí IE sráče WriteRegistryProxy(); //nastaví proxy v IE, resp. ve win včetne výjimek atd. WriteRegistryCmdHere(); //přidá do pravého tl. myši (když se tukne na diskovou jednotku, složku, nebo soubor, WriteRegistryCmdHere2(); //položku cmdhere, která otevře konzoli v daném umístění WriteRegistryCmdHereFolder(); WriteRegistryCmdHereFolder2(); //WriteRegistryCmdUNC(); //povoli unc cesty v prikazove radce cmd WriteRegistryDisableTour(); //vypne zobrazování průvodce po nainstalování windows WriteRegistryTaskmgr(); //nastavení správce úloh WriteRegistryCMD(); //nastaveni velikosti, barvy apod. cmd prikazovy radky WriteRegistryNTPClient(); //nastaveni synchronizace casu pomoci ntp clienta (na nas vlastni ntp server) WriteRegistryNTPClientSVC(); //samotné nastavení služby WriteRegistryNTPClientSRVLST(); //seznam ntp serveru pro synchronizaci casu na stanicich WriteRegistryDNSSuffix(); //nastavit dns suffix pro automaticke doplnovani nazvu domeny WriteRegistryTNS(); // Nastavit promenou prostredi pro cestu k oracle tnsnames.ora a sqlnet.ora /*** RISK ***/ //WriteRegistrySpeedShutdown1(); //zapne volbu automatického ukončení úlohy, zkrátí čas automatického čekání aplikace na 100, zkrátí čekací dobu na killnutí aplikace na 1000 //WriteRegistrySpeedShutdown2(); //zkrátí čekací čas na killnutí služby na 1000 //WriteRegistryCacheOpt(); //vypne stránkování do souboru a nastaví default velikost pro praci s L2 cache na proc. //WriteRegistryForceDLL(); //zapne unloading dll, from memory (zatím nefunkční) //WriteRegistryStartMenuTuning(); //WriteRegistryIETuning(); //WriteRegistryMRXSmb(); //WriteRegistryIEscapi(); //WriteRegistrySessionManager(); //WriteRegistrySMBCR1(); //WriteRegistrySMBCR2(); //WriteRegistrySMBCR3(); /***** Security section ****/ WriteRegistryOle(); //Nastaví práva pro DCOM pozorně si to promyslete, tohle taky odpálí dost SW na vistách, na nich to rozhodně nepoužívat a na winxp bey s SP, nebo s SP1 take ne WriteRegistryRemoteAdminSettings(); //povolí vzdálené připojení přes firewall WriteRegistryForceGuest(); //nastaví ověřování uživatelů na sebe sama, tato hodnota je propojena s položkou : "Použít zjednodušené sdílení souborů (doporučeno)" /***** WinXP firewall section ****/ //WriteRegistryFWPolicy(); //zapnutí firewallu, povolení výjimek /***** WSUS winxp section ****/ WriteRegistryWSUS(); //nastaví WSUS server na náš předdefinovaný WriteRegistryWSUS_Enable(); //povolí stahování aktualizací z WSUS serveru a provede patřičná nastavení /***** Services section *****/ WriteRegistryJQS(); //vypnout službu JavaQuickStarter - je to pěkná sviňárna, ta služba je schopná za pár hodin přečíst 2GB dat, i více, což má dopad na výkon pomalejších PC // WriteRegistrystisvc(); //Načítání obrázků (WIA) => zakázat WriteRegistryCiSvc(); //Indexing Service => rucne WriteRegistryMessenger(); //Kurýrní služba => zakázat WriteRegistryClipSrv(); //Síťová schránka => zakázat WriteRegistryhelpsvc(); //Nápověda a odborná pomoc => automaticky WriteRegistryTlntSvr(); //Telnet => zakázat WriteRegistryRemoteRegistry(); //Vzdálený registr => automaticky WriteRegistryEventlog(); //Protokol událostí => automaticky WriteRegistryERSvc(); //Zasílání zpráv o chybách => automaticky WriteRegistrymnmsrvc(); //NetMeeting - Vzdálené sdílení plochy => zakázat WriteRegistrySENS(); //Oznamování systémových událostí => automaticky WriteRegistrywuauserv(); //Automatické aktualizace => automaticky WriteRegistryupnphost(); //Hostitel zařízení UPnP => zakázat WriteRegistryNla(); //Sledování umístění v síti (NLA) => ručně (default = ručně) WriteRegistryALG(); //Služba brány aplikačního rozhraní => ručně (default = ručně) WriteRegistryNetDDE(); //Služba DDE v síti => zakázat (default = zakázáno) WriteRegistryNetDDEdsdm(); //Správce DSDM služby DDE v síti => zakázat (default = zakázáno) WriteRegistryRemoteAccess(); //Směrování a vzdálený přístup => zakázat (default = zakázáno) WriteRegistryRDSessMgr(); //Správce relací nápovědy ke vzdálené ploše => ručně (default = ručně) WriteRegistryBrowser(); //Prohledávání počítačů => automaticky (default = automaticky) WriteRegistryTermService(); //Terminálová služba => automaticky (default = ručně) //serou se bez hoto programy(např. StartEAK = "nastavení multimediální klávesnice" vyletí s CPU na 100%) od HP a scanery a možná ještě něco, musí zůstat ve stavu ručně /* WriteRegistryVSS(); //Stínová kopie svazku WriteRegistryAppMgmt(); //Správa aplikací WriteRegistryAudioSrv(); //Zvuk systému Windows WriteRegistryBITS(); //Služba inteligentního přenosu na pozadí WriteRegistryCOMSysApp(); //Systémové aplikace modelu COM+ WriteRegistryCryptSvc(); //Šifrování WriteRegistryDcomLaunch(); //Spouštěč procesů serveru DCOM WriteRegistryDhcp(); //Klient DHCP WriteRegistrydmadmin(); //Služba správy pro Správce logických disků WriteRegistrydmserver(); //Správce logických disků WriteRegistryDnscache(); //Klient DNS WriteRegistryEventSystem(); //Systém událostí modelu COM+ WriteRegistryFUSC(); //Kompatibilita pro rychlé přepínání uživatelů WriteRegistryHidServ(); //Přístup k zařízením standardu HID WriteRegistryHTTP(); //HTTP WriteRegistryHTTPFilter(); //HTTP SSL WriteRegistryImapiService(); //Služba modelu COM pro zápis na disk CD (IMAPI) WriteRegistryIp6Fw(); //Ovladač IPv6 brány firewall systému Windows WriteRegistrylanmanserver(); //Server WriteRegistrylanmanworkstation(); //Pracovní stanice WriteRegistryLmHosts(); //Podpora rozhraní NetBIOS nad protokolem TCP/IP WriteRegistryLPDSVC(); //Tiskový server TCP/IP WriteRegistryMRxDAV(); //Přesměrovač klienta WebDav WriteRegistryMSDTC(); //Koordinátor DTC WriteRegistryMSIServer(); //Windows Installer WriteRegistryNetBIOS(); //Rozhraní NetBIOS WriteRegistryNetBT(); //Rozhraní NetBios nad protokolem TCP/IP WriteRegistryNetlogon(); //Přihlašování k síti WriteRegistryNetman(); //Síťová připojení WriteRegistryNtLmSsp(); //Zprostředkovatel zabezpečení NT LM WriteRegistryNtmsSvc(); //Vyměnitelné úložiště WriteRegistryPlugPlay(); //Plug and Play WriteRegistryPolicyAgent(); //Služby IPSEC WriteRegistryProtectedStorage(); //Chráněné úložiště WriteRegistryPSched(); //Plánovač paketů technologie QoS WriteRegistryRpcLocator(); //Lokátor vzdáleného volání procedur (RPC) WriteRegistryRpcSs(); //Vzdálené volání procedur (RPC) WriteRegistryRSVP(); //QoS RSVP WriteRegistrySamSs(); //Správce zabezpečení účtů WriteRegistryseclogon(); //Sekundární přihlašování WriteRegistrySharedAccess(); //Brána Firewall / Sdílení připojení k Internetu (ICS) WriteRegistryShellHWDetection(); //Rozpoznávání hardwaru WriteRegistrySchedule(); //Plánovač úloh WriteRegistrySpooler(); //Zařazování tisku WriteRegistrysrservice(); //Služba obnovení systému WriteRegistrySysmonLog(); //Výstrahy a protokolování výkonu WriteRegistryTapiSrv(); //Telefonní subsystém WriteRegistryTcpip(); //Ovladač protokolu TCP/IP WriteRegistryTcpip6(); //Ovladač protokolu Microsoft IPv6 WriteRegistryThemes(); //Motivy WriteRegistryTrkWks(); //Klient služby sledování distribuovaných propojení WriteRegistryW32Time(); //Systémový čas WriteRegistryWanarp(); //Ovladač Remote Access IP ARP WriteRegistryWebClient(); //Webový klient WriteRegistrywinmgmt(); //Služba WMI WriteRegistryWmi(); //Rozšíření ovladače WMI WriteRegistryWmiAcpi(); //Microsoft Windows Management Interface for ACPI WriteRegistryWmiApSrv(); //Adaptér výkonu služby WMI WriteRegistryWMPNetworkSvc(); //Služba Windows Media Player Network Sharing WriteRegistrywscsvc(); //Centrum zabezpečení WriteRegistryWSearch(); //Vyhledávání systému Windows WriteRegistryWZCSVC(); //Automatická konfigurace bezdrátových zařízení WriteRegistryxmlprov(); //Služba pro síťová ustanovení */ }registry_all.h
/* ######################################################################### ######### author : Max Devaine ################## ######### contact : maxdevaine@volny.cz ################## ######### consultant (WriteBinary) : Jiri Nemec ################## ######################################################################### ######### license : Creative Commons (by,sa) ################## ######################################################################### ######### Sources : ################## ## http://www.radekchalupa.cz/clanky/default.aspx?kod=205&obsah=18 ## ## http://msdn.microsoft.com/en-us/library ## ######################################################################### */ #include <windows.h> #include <stdio.h> #include <tchar.h> HINSTANCE g_hInst; HWND g_hWnd; TCHAR chInfoText[150]; /****************************************************************************************/ /********************** Funkce pro práci s registry *************************************/ /****************************************************************************************/ //#define REGISTRY_NAME HKEY_LOCAL_MACHINE /**HKEY_LOCAL_MACHINE**/ HKEY registry_OpenKeyHKLM(LPCTSTR lpKeyName, LPBOOL lpbCreated) { DWORD dwDisp = 0; HKEY hkResult = NULL; if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS ) return NULL; if ( lpbCreated ) *lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY ); return hkResult; } /**HKEY_CURRENT_USER**/ HKEY registry_OpenKeyHKCU(LPCTSTR lpKeyName, LPBOOL lpbCreated) { DWORD dwDisp = 0; HKEY hkResult = NULL; if ( RegCreateKeyEx(HKEY_CURRENT_USER, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS ) return NULL; if ( lpbCreated ) *lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY ); return hkResult; } /**HKEY_USER**/ HKEY registry_OpenKeyHKU(LPCTSTR lpKeyName, LPBOOL lpbCreated) { DWORD dwDisp = 0; HKEY hkResult = NULL; if ( RegCreateKeyEx(HKEY_USERS, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS ) return NULL; if ( lpbCreated ) *lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY ); return hkResult; } /**HKEY_CLASSES_ROOT**/ HKEY registry_OpenKeyHKCR(LPCTSTR lpKeyName, LPBOOL lpbCreated) { DWORD dwDisp = 0; HKEY hkResult = NULL; if ( RegCreateKeyEx(HKEY_CLASSES_ROOT, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS ) return NULL; if ( lpbCreated ) *lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY ); return hkResult; } BOOL registry_CloseKey(HKEY hKey) { return ( RegCloseKey(hKey) == ERROR_SUCCESS); } BOOL registry_WriteDWORD(HKEY hKey, LPCTSTR lpValueName, DWORD dwValue) { return ( RegSetValueEx(hKey, lpValueName, 0, REG_DWORD, (CONST BYTE*)&dwValue, sizeof(DWORD)) == ERROR_SUCCESS ); } BOOL registry_WriteString(HKEY hKey, LPCTSTR lpValueName, LPCTSTR lpText) { return ( RegSetValueEx(hKey, lpValueName, 0, REG_SZ, (CONST BYTE*)lpText, (lstrlen(lpText)+1)*sizeof(TCHAR)) == ERROR_SUCCESS ); } BOOL registry_DeleteValue(HKEY hKey, LPCTSTR lpValueName) { return ( RegDeleteValue(hKey, lpValueName ) == ERROR_SUCCESS ); } DWORD registry_DeleteKey(HKEY hStartKey , LPTSTR pKeyName ) { DWORD dwRtn, dwSubKeyLength; LPTSTR pSubKey = NULL; TCHAR szSubKey[256]; // (256) this should be dynamic. HKEY hKey; // Do not allow NULL or empty key name if ( pKeyName && lstrlen(pKeyName)) { if( (dwRtn=RegOpenKeyEx(hStartKey,pKeyName, 0, KEY_ENUMERATE_SUB_KEYS | DELETE, &hKey )) == ERROR_SUCCESS) { while (dwRtn == ERROR_SUCCESS ) { dwSubKeyLength = 256; dwRtn=RegEnumKeyEx( hKey, 0, // always index zero szSubKey, &dwSubKeyLength, NULL, NULL, NULL, NULL ); if(dwRtn == ERROR_NO_MORE_ITEMS) { dwRtn = RegDeleteKey(hStartKey, pKeyName); break; } else if(dwRtn == ERROR_SUCCESS) dwRtn=registry_DeleteKey(hKey, szSubKey); } RegCloseKey(hKey); // Do not save return code because error // has already occurred } } else dwRtn = ERROR_BADKEY; return dwRtn; } /**** Binarni zapis do registru : *****/ BOOL registry_WriteBinary(HKEY hKey, LPCTSTR lpValueName, char * lpText, int delka) { return RegSetValueEx(hKey, lpValueName, 0, REG_BINARY, (CONST BYTE*) lpText,delka); } /**** Nastavit práva na klíči a všech podklíčích : *****/ /****************************************************************************************/ /*********************** Zápis do registrů **********************************************/ /****************************************************************************************/ /* Nastavit promenou prostredi pro cestu k oracle tnsnames.ora a sqlnet.ora*/ BOOL WriteRegistryTNS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Environment", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("TNS_ADMIN"), "G:\\new_is\\TNS_ADMIN") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /* Nastavit dns suffix*/ /* Mame firemni web server : intranet.firma.local, ale chci, aby uzivatele zadali jen adresu "intranet" a nemuseli se pitvorit s nazvem domeny. Od toho je dns suffix, ktery za adresu automaticky doplni nami zvolenou domenu. Standardne doplnuje suffix jen v pripade, ze je PC zapojeno v domene, pokud v ni neni, tak si to musime takto obejit */ BOOL WriteRegistryDNSSuffix() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\\\Parameters", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("Domain"), "devaine.local") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("SearchList"), "devaine.local") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /* Nastavení NTP klienta ve windows na synchronizaci casu*/ BOOL WriteRegistryNTPClientSRVLST() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("1"), "ntp.devaine.local") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("2"), "ntp2.devaine.local") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNTPClient() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\W32Time\\Parameters", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("NtpServer"), "ntp.devaine.local,0x1") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("Type"), "NTP") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNTPClientSVC() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\W32Time\\TimeProviders\\NtpClient", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("AllowNonstandardModeCombinations"), 1) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("CrossSiteSyncFlags"), 2) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Enabled"), 1) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SpecialPollInterval"), 900) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("EventLogFlags"), 0) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("InputProvider"), 1) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ResolvePeerBackoffMaxTimes"), 7) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ResolvePeerBackoffMinutes"), 15) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /* Nastaveni taskmanageru, sloupce, rozlozeni okna atd. */ BOOL WriteRegistryTaskmgr() { // v poli jsou HEX znaky tak, jak se vyexportuji do *.reg souboru, pomoci pspadu je pak format HEX z // *.reg souboru upraven do nasledujici podoby, kdy jsou odstraneny mezery, carky, lomitka, nove radky a // pred vsechny HEX znaky je pridano "\x" znacici, ze jde o HEX :) char pole[] = "\x9c\x02\x00\x00\xe8\x03\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x5d\x03\x00\x00\x03\x03\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x60\x00\x3c\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x9e\x00\x00\x00\x32\x00\x00\x00\x6b\x00\x00\x00\x39\x00\x00\x00\x23\x00\x00\x00\x43\x00\x00\x00\x52\x00\x00\x00\x76\x00\x00\x00\x72\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\ x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"; BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows NT\\CurrentVersion\\TaskManager", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteBinary(hKey,"Preferences", pole, (sizeof(pole)-1))) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /* Nastaveni cmd shellu, barva pozadi, barva pisma, rozmery, historie atd. */ BOOL WriteRegistryCMD() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Console\\%SystemRoot%_system32_cmd.exe", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("QuickEdit"), 1) ) //zapne rezim rychlych uprav bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ScreenBufferSize"), 196608100) ) //nastavi velikost historie (kolik radku si to bude pamatovat) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ScreenColors"), 113) ) //barva pisma a pozadi bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("WindowSize"), 3276900) ) //velikost okna bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*********************** Permission DCOM section ****************************************/ BOOL WriteRegistryOle() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Ole", NULL); if ( !hKey ) return FALSE; if ( !registry_DeleteValue(hKey, TEXT("MachineLaunchRestriction")) ) //zabijácká věc, jen na vlastní triko !!! / ok, u winxp SP2 je to ok, u SP1 to myslím dělá drobné problémy s právy a na vistách bych to opravdu nedělal :) bRes = FALSE; if ( !registry_DeleteValue(hKey, TEXT("MachineAccessRestriction")) ) //zabijácká věc, jen na vlastní triko !!! / ok, u winxp SP2 je to ok, u SP1 to myslím dělá drobné problémy s právy a na vistách bych to opravdu nedělal :) bRes = FALSE; if ( !registry_DeleteValue(hKey, TEXT("DefaultLaunchPermission")) ) //zabijácká věc, jen na vlastní triko !!! / ok, u winxp SP2 je to ok, u SP1 to myslím dělá drobné problémy s právy a na vistách bych to opravdu nedělal :) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("EnableDCOM"), "Y") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("EnableRemoteConnect"), "Y") ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("LegacyAuthenticationLevel"), 1) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("LegacyImpersonationLevel"), 2) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRemoteAdminSettings() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\RemoteAdminSettings", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("enabled"), 1) ) //povolí vzdálený přístup na PC bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("RemoteAddresses"), "*") ) //povolí vzdálený přístup na PC ze "*" = všech sítí, "localsubnet" = jen z lokální sítě bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryForceGuest() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Lsa", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("forceguest"), 0) ) //0=uživatelé se ověřují jako oni sami; 1= uživatelé jsou ověřování jako guest; tato hodnota je propojena s klikací položkou : "Použít zjednodušené sdílení souborů (doporučeno)", takže opravdu geniální propojení, chjo :( bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*********************** Win XP firewall section ****************************************/ BOOL WriteRegistryFWPolicy() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("EnableFirewall"), 1) ) //zapne win firewall v xp SP2 bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("DisableNotifications"), 1) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("DoNotAllowExceptions"), 0) ) //povolí výjimky ve firewallu bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*********************** Win XP WSUS section ****************************************/ BOOL WriteRegistryWSUS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("WUServer"), "http://wsusserver:8530") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("WUStatusServer"), "http://wsusserver:8530") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWSUS_Enable() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("UseWUServer"), 1) ) // 1 = použít pro aktualizaci WSUS, 0 = použít pro aktualizaci windows update bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoAutoUpdate"), 0) ) // 0 = aktualizace jsou povoleny, 1 = zakazany bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("AUOptions"), 4) ) // 3= automaticky sosat a pak se zeptat na instalaci, 4 = automaticky stahnout a automaticky nainstalovat v naplanovany cas bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ScheduledInstallDay"), 0) ) // 0 = denně, 1-7 se definuji jednotlive dny bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ScheduledInstallTime"), 12) ) // ve 12 hod. dopoledne by se mela spustit instalace aktualizaci bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoAutoRebootWithLoggedOnUsers"), 1) ) // 1 = zákaz automatických restartů bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*********************** Proxy section (kvůli Exchange OWA) ****************************************/ BOOL WriteRegistryProxy() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", NULL); if ( !hKey ) return FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("ProxyEnable"), 1) ) // povolit proxy //bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("ProxyOverride"), "*devaine.local;http://exchange") ) //výjimky na proxyně (prostě adresy, které nemají jít přes proxy, třeba nějaké lokální atd.), oddělují se středníkem bRes = FALSE; //if ( !registry_WriteString(hKey, TEXT("ProxyServer"), "172.25.156.90:3128") ) //ip adresa proxyny včetně čísla portu //bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*********************** Fuj section ****************************************/ BOOL WriteRegistryStartEAK() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", NULL); if ( !hKey ) return FALSE; if ( !registry_DeleteValue(hKey, TEXT("CPQEASYACC")) ) //Po mé tuningové úpravě ve službách se tento proces(mapování klávesnice od HP) zbláznil a žere 100% CPU (stejně je to na hovno SW :) ), UPDATE: tak jsem zjistil, že vyžaduje k životu službu terminal services bRes = FALSE; return bRes; } /*********************** Tuning section ****************************************/ BOOL WriteRegistryLPT() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\WOW", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("LPT_timeout"), "1") ) // číslo je v sekundách bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryStartMenuTuning() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("MemCheckBoxInRunDlg"), 1) ) // Přidat zaškrtávací políčko „Spouštět ve vyhrazeném paměťovém prostoru“ do dialogového okna Spustit Popis: Umožní spuštění 16bitových programů ve vyhrazeném procesu VDM (Virtual DOS Machine) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoChangeStartMenu"), 0) ) // Zabrání uživateli měnit nabídku Start pomocí přetahování položek, UPDATE: je to nahovno, neumožní to vůbec kliknout pravým tl. na ikonky v nabídce start :(, takze vypinam tuto moznost bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("NoInstrumentation"), 1) ) // Zabrání systému pamatovat si spuštěné programy, procházené cesty a použité dokumenty //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("NoSimpleStartMenu"), 1) ) // Vynutit klasickou nabídku Start //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("DisableMyPicturesDirChange"), 1) ) // Zabránit uživateli změnit cestu k uživatelským složkám //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("DisableMyMusicDirChange"), 1) ) // Zabránit uživateli změnit cestu k uživatelským složkám //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("DisableFavoritesDirChange"), 1) ) // Zabránit uživateli změnit cestu k uživatelským složkám //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("DisablePersonalDirChange"), 1) ) // Zabránit uživateli změnit cestu k uživatelským složkám //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("NoRecentDocsMenu"), 1) ) // Odebrat položku Poslední dokumenty z nabídky Start //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("ClearRecentDocsOnExit"), 1) ) // Při ukončení vymazat historii posledních otevřených dokumentů //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("MaxRecentDocs"), 20) ) // Maximální počet posledních dokumentů //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("NoResolveSearch"), 1) ) // Při určování cíle zástupců nepoužívat metody založené na vyhledávání //bRes = FALSE; //if ( !registry_WriteDWORD(hKey, TEXT("NoResolveTrack"), 1) ) // Při určování cíle zástupců prostředí nepoužívat metody založené na sledování (Zabrání systému v použití funkcí souborového systému NTFS při určování cíle zástupce) //bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryStartMenu() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MenuOrder", NULL); if ( !hKey ) return FALSE; //if ( !registry_DeleteKey(hKey, TEXT("Favorites")) ) //smazáním této položky(oblíbené v exploreru) se po spuštění automaticky znovu sestaví a tím pádem seřadí podle abecedy //bRes = FALSE; if ( !registry_DeleteKey(hKey, TEXT("Start Menu2")) ) //smaže nabídku start, po opětovném načtení se znovu sestaví a tím se i seřadí podle abecedy bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryStartMenuItems() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_NotifyNewApps"), 0) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ScrollPrograms"), 0) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowControlPanel"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowHelp"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyComputer"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyDocs"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyMusic"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyPics"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowNetPlaces"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowPrinters"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowRecentDocs"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowRun"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowSearch"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowSetProgramAccessAndDefaults"), 1) ) //0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("TaskbarSizeMove"), 0) ) //odemknout hlavni panel 0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("TaskbarGlomming"), 1) ) //seskupovat podobná tlačítka hlavního panelu 0 = vypnuto ,1 = zapnuto bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryDisableTour() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Tour", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("RunCount"), 0) ) // 0 - vypnuto (číslo udává počet zobrazení) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*** Tuning pro sit a jeji prochazeni ***/ BOOL WriteRegistryMasterBrowser() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Browser\\Parameters", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("IsDomainMaster"), "FALSE") ) //není řadičem domény bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("MaintainServerList"), "No") ) //neudržovat seznam strojů, další možnosti jsou "yes" a "auto" bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*** IE tuning ***/ BOOL WriteRegistryIETuning() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("UseDesktopIniCache"), 1) ) // vyřeší dlouhé procházení Document folder bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoRemoteRecursiveEvents"), 1) ) // windows may cause extra SMB notify change traffic bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoRemoteChangeNotify"), 1) ) // bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("StartRunNoHOMEPATH"), 1) ) // je hledán domovský adresář dřív, než se spustí program, tohle by to mělo řešit bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoRecentDocsNetHood"), 1) ) // místa v síti nepřidají vzdálené sdílené složky bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoDetailsThumbnailOnNetwork"), 1) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryIEprint() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_STF_Scale_Min", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("iexplore.exe"), 100) ) // nastaví v náhledu tisku u IE7 100% velikost, takže se nebude deformovat vytisknutý dokument bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryMRXSmb() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MRXSmb\\Parameters", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("InfoCacheLevel"), 16) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySMBCR1() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("*\\shellex\\PropertySheetHandlers\\CryptoSignMenu", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SuppressionPolicy"), 1048576) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySMBCR2() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("*\\shellex\\PropertySheetHandlers\\{3EA48300-8CF6-101B-84FB-666CCB9BCD32}", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SuppressionPolicy"), 1048576) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySMBCR3() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("*\\shellex\\PropertySheetHandlers\\{883373C3-BF89-11D1-BE35-080036B11A03}", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SuppressionPolicy"), 1048576) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryIEscapi() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\SCAPI", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Flags"), 1051650) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySessionManager() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SafeDllSearchMode"), 1) ) // bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SafeProcessSearchMode"), 1) ) // bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNoFFconnection() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoFileFolderConnection"), 1) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryPersistent() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKU(".DEFAULT\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Network\\Persistent Connections", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("SaveConnections"), "yes") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryLinkIgnoreHKCU() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("LinkResolveIgnoreLinkInfo"), 1) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryLinkIgnoreHKLM() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("LinkResolveIgnoreLinkInfo"), 1) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*konec tuningu pro sit*/ /*Sekce Instalace fontů*/ BOOL WriteRegistryFonts() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("PF Barcode 128 (TrueType)"), "PF_C128.ttf") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("PF Barcode 39 (TrueType)"), "PF_C39.ttf") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*Konec sekce Instalace fontů*/ BOOL WriteRegistryNTFSoptimise() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\FileSystem", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NtfsDisableLastAccessUpdate"), 0) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NtfsMftZoneReservation"), 2) ) //rezervovat větší místo v MFT pro soubory bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Win95TruncatedExtensions"), 0) ) //vypne krátké přípony souborů bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Win31FileSystem"), 0) ) //1=zakázat/0=povolit podporu dlouhých názvů souborů na FAT kvůli kompatibilitě se starším SW (pokud se dá zakázat, tak to vyřadí dost installerů z provozu :D, fakt prdel, a to i když se instalí na NTFS :)) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NtfsDisable8dot3NameCreation"), 0) ) //povolí vytváření krátkých názvů souborů (1= vypne a tím se i zvýší výkon, ale my potřebujem kompatibilitu) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNumlock() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKU(".DEFAULT\\Control Panel\\Keyboard", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("InitialKeyboardIndicators"), "2") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryAsocciations() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Associations", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("LowRiskFileTypes"), "is_blue.exe; M602cl32.exe; eric.exe; tiskf.exe; FAKT19XP.BAT; projectz.exe; raex.exe") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryAutoTPrinters() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoNetCrawling"), 1) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBootOptimise() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Dfrg\\BootOptimizeFunction", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("Enable"), "Y") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySpeedShutdown1() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Control Panel\\Desktop", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("AutoEndTasks"), "1") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("HungAppTimeout"), "100") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("WaitToKillAppTimeout"), "1000") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySpeedShutdown2() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("WaitToKillServiceTimeout"), "1000") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBSODAutorestart() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\CrashControl", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("AutoReboot"), 0) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryHiddenFilesPB() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Hidden"), 2) ) //1 = zobraz ,2 = skryj bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SuperHidden"), 0) ) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ShowSuperHidden"), 0) ) //0 = skrýt, 1 = zobrazit bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("HideFileExt"), 0) ) //vypnutí funkce : skrýt příponu známých typů souborů bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("PersistBrowsers"), 0) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryHiddenFiles() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("CheckedValue"), 1) ) //1 = zobraz , 0 = skryj bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryHiddenUser() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("q"), 0) ) //1 = zobraz ,0 = skryj uživatele v login obrazovce bRes = FALSE; return bRes; } BOOL WriteRegistryCleanWiz() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\CleanupWiz", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoRun"), 1) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySleepOFF() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Control Panel\\Desktop", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("ScreenSaveActive"), "0") ) bRes = FALSE; if ( !registry_WriteString(hKey, TEXT("PowerOffActive"), "0") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBkgrDef() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKU(".DEFAULT\\Control Panel\\Colors", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("Background"), "58 110 165") ) // 128 128 128 => pěkná šedá :D (58 110 165 = modrá :-/ ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBkgr() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Control Panel\\Colors", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("Background"), "58 110 165") ) // 128 128 128 => pěkná šedá :D (58 110 165 = modrá :-/ ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryDiskSpaceCheck() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("NoLowDiskSpaceChecks"), 1) ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryPrefetch() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\PrefetchParameters", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("EnablePrefetcher"), 0) ) //(0 = zakázat, 1 = ukládat soubory programů, 2 = ukládat data Windows, 3 = ukládat soubory programů a data Windows) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryAutoChkdsk() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("AutoChkTimeOut"), 2) ) //(čas v sekundách, 0 pro vypnutí; původní hodnota je 10) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryAClearPGfile() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("ClearPageFileAtShutdown"), 0) ) //(0 = zakázat, 1 = vyčistit stránkovací soubor při vypnutí systému) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCacheOpt() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("DisablePagingExecutive"), 0) ) //(0 = původní, 1 = vypnout systémové stránkování) bRes = FALSE; if ( !registry_WriteDWORD(hKey, TEXT("SecondLevelDataCache"), 0) ) //(0 = původní => win automaticky zjistí velikost L2ojky, jiné číslo by mělo být velikost L2 cache u procáků => manuální nastavení uživatele) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryForceDLL() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AlwaysUnloadDll", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("@"), "0") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBgrDef() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKU(".DEFAULT\\Control Panel\\Desktop", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("Wallpaper"), "C:\\windows\\background.bmp") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBgr() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Control Panel\\Desktop", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT("Wallpaper"), "C:\\windows\\background.bmp") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /***** Start : CMD HERE ****/ BOOL WriteRegistryCmdHere() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("*\\shell\\cmdhere", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT(""), "Cmd&Here") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCmdHere2() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("*\\shell\\cmdhere\\command", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT(""), "cmd.exe /k ""cd %L""") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCmdHereFolder() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("Folder\\shell\\cmdhere", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT(""), "Cmd&Here") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCmdHereFolder2() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCR("Folder\\shell\\cmdhere\\command", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteString(hKey, TEXT(""), "cmd.exe /k ""cd %L""") ) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /***** End : CMD HERE ****/ BOOL WriteRegistryCmdUNC() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKCU("Software\\Microsoft\\Command Processor", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("DisableUNCCheck"), 1) ) //(0 = vypnuto, 1 = povolit UNC) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } /*************************************************/ /******************* services ********************/ /*************************************************/ BOOL WriteRegistryJQS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\JavaQuickStarterService", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryMessenger() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Messenger", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryALG() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ALG", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryAppMgmt() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\AppMgmt", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryAudioSrv() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\AudioSrv", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBITS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\BITS", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryBrowser() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Browser", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCiSvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\CiSvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryClipSrv() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ClipSrv", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCOMSysApp() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\COMSysApp", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryCryptSvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\CryptSvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryDcomLaunch() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\DcomLaunch", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryDhcp() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Dhcp", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrydmadmin() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\dmadmin", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrydmserver() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\dmserver", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryDnscache() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Dnscache", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryERSvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ERSvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryEventlog() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Eventlog", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryEventSystem() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\EventSystem", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryFUSC() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\FastUserSwitchingCompatibility", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryhelpsvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\helpsvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryHidServ() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\HidServ", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryHTTP() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\HTTP", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryHTTPFilter() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\HTTPFilter", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryImapiService() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ImapiService", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryIp6Fw() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Ip6Fw", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrylanmanserver() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\lanmanserver", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrylanmanworkstation() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryLmHosts() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\LmHosts", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryLPDSVC() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\LPDSVC", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrymnmsrvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\mnmsrvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryMRxDAV() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MRxDAV", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryMSDTC() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MSDTC", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryMSIServer() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MSIServer", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNetBIOS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetBIOS", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNetBT() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetBT", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNetDDE() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetDDE", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNetDDEdsdm() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetDDEdsdm", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNetlogon() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Netlogon", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNetman() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Netman", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNla() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Nla", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNtLmSsp() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NtLmSsp", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryNtmsSvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NtmsSvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryPlugPlay() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\PlugPlay", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryPolicyAgent() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\PolicyAgent", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryProtectedStorage() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ProtectedStorage", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryPSched() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\PSched", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRDSessMgr() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RDSessMgr", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRemoteAccess() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RemoteAccess", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRemoteRegistry() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RemoteRegistry", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRpcLocator() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RpcLocator", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRpcSs() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RpcSs", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryRSVP() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RSVP", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySamSs() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SamSs", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryseclogon() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\seclogon", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySENS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SENS", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySharedAccess() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SharedAccess", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryShellHWDetection() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ShellHWDetection", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySchedule() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Schedule", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySpooler() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Spooler", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrysrservice() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\srservice", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrystisvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\stisvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrySysmonLog() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SysmonLog", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryTapiSrv() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TapiSrv", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryTcpip() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Tcpip", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryTcpip6() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Tcpip6", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryTermService() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TermService", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryThemes() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Themes", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryTlntSvr() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TlntSvr", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryTrkWks() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TrkWks", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryupnphost() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\upnphost", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryVSS() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\VSS", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryW32Time() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\W32Time", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWanarp() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Wanarp", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWebClient() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WebClient", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrywinmgmt() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\winmgmt", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWmi() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Wmi", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWmiAcpi() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WmiAcpi", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWmiApSrv() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WmiApSrv", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWMPNetworkSvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WMPNetworkSvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrywscsvc() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\wscsvc", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWSearch() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WSearch", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistrywuauserv() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\wuauserv", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryWZCSVC() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WZCSVC", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; } BOOL WriteRegistryxmlprov() { BOOL bRes = TRUE; HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\xmlprov", NULL); if ( !hKey ) return FALSE; if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) ) //(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) bRes = FALSE; if ( !registry_CloseKey(hKey) ) bRes = FALSE; return bRes; }
Do komentáře pro jistotu ještě vložím oba soubory. Původně jsem chtěl celý projekt včetně nastavení, ale má poněkud více, než jsem si myslel.
Jen ještě připomenu, že skript je funkční pro Windows XP Pro SP2 a SP3. V SP1 radikální promazy v registrech(sekce OLE - dcom) odpálí část wmi - klikací rozhraní nastavení síťovky.
Za funkčnost / nefunkčnost skriptu a případné poškození, či ztráty dat neručím. Lidi, každý sám za sebe
Není problém staticky zkompilovat pod VS2005EE/2008EE, verzi 2010 jsem nezkoušel.
Výsledný exáč spouštím na stanicích jak pod user právy, tak pod admin právy (pomocí runas wraperu, který jsem taktéž napsal a heslo v něm zakamufloval). Pokud již stanice mají nastaveny správné přístupy, lze pak k další distribuci použít wmi/vbs.
Jestli ten exáč má nějakou výhodu, tak rychlost nastavení stanice, jeho úprava a kompilace taktéž nezabere moc času, takže jsou nová nastavení připravena relativně rychle. Je to C++, tedy netřeba nainstalovaný framework, javu apod. A samozřejmě to není úplně pěkné řešení :). Na druhou stranu, při psaní mi to dalo hodně, hodně jsem poznal klíče v registrech a mnoho dalších věcí, takže výborná věc na studování :).
Pro lidi, které jsem tímto kouskem opičího kódu nepobavil, přikládám jeden ze života :
Ona: "Prosímtě, potřebuji klientovi poslat jednu webovou stránku, přesně tak, jak jí vidím já. Jak nato?
Já: Nu, to je jednoduché, zmáčkni prtscr a..."
Ona: "Počkej!!!, mně nejdou zmáčknout všechny ty písmenka najednou ... :("
Tiskni
Sdílej:
No nevim, u nás platí spíš "Čím míň toho tam je, tim míň se toho může pos*at"
Nervový plyn ??Někdy stačí po dnu v botech se jen zout :)
Pozor, chystáte se komentovat 1275 dní dní starou diskusi.A ten kód... Ježišmarjáááá!
.reg
souborů přes regedit /s
a pár .bat
souborech, co spouští systémové nebo externí nástroje na věci jako změny ve firewallu nebo zákaz některých služeb. Na speciality je tam ještě pár VBS skriptů (třeba konfigurace tiskáren). Přijde mi to přehlednější, rozdělené na jednoúčelové moduly, a snáz se dělají úpravy - něco na způsob unixových shell skriptů. Ten blog je dobrý minimálně jako dokumentace těch klíčů, plno jsem jich neznal. Ale přemýšlel jsi udělat to jak jsem psal? V C++ mi to přijde zbytečně nepřehledné.
Další level je automatická instalace a updaty všech aplikací. To je často ještě větší magie než konfigurace Windows. Ale pak je to pěkné, když se všechno zkonfiguruje a nainstaluje samo (podle konfigurace pro konkrétní stroj) bez sáhnutí během 10 minut po obnovení image úplně čistých Windows (to trvá tak 2 minuty).
..a rozjede se FS na W2008R2 serveru.Ještě s láskou pak vzpomenete na Netware.
Netware neumí spouštět baťáky, dokonce neumí myslím ani exe s parametrem :-/.
#C:\windows\system32\cmd.exe \\192.168.0.1\zapis\test.batA taktéž to prošlo. Vím, že tenkrát jsem řešil vyskakování oken (nechtěl jsem, aby bylo cokoliv vidět), z toho důvodu jsem nechtěl použít baťáky. Pamatuji si, že mi také nešli spouštět nějaké věci, ovšem používal jsem jiného (staršího) klienta, možná bug :-/. To je jedno.