Secretele de Windows: articole despre registru, rundll32.exe, programele Book Windows Vista Registry. Fișiere INF
Cartea "Windows Vista Registry: 100%", Capitolul 1. Informații de bază despre registru, 1.3. Limbi de scriere și registru: fișiere INF.
Pe paginile acestei cărți nu vom intra în subtilitățile programării în scenariile descrise - singurul lucru care ne interesează este capacitatea lor de a lucra cu registrul.
Fișierele cu extensia .inf sunt fișiere text obișnuite care pot conține comenzi speciale pentru lucrul cu registrul, sistemul de fișiere, serviciile și alte componente ale sistemului de operare Windows Vista. De obicei, fișierele inf sunt utilizate pentru a instala hardware sau software suplimentar.
Aceste fișiere nu sunt noi pentru sistemul de operare Windows Vista - acestea erau disponibile în Windows 95. Începând cu Windows 98, capabilitățile fișierelor inf au fost extinse semnificativ de către biblioteca advapi32.dll suplimentară. În acest scenariu, care folosesc biblioteca advapi32.dll (pot fi conectate la script sau nu), se numesc fișiere inf infinse.
De atunci, funcționalitatea fișierelor informatice nu sa schimbat prea mult.
Folosind fișiere inf, puteți efectua următoarele acțiuni în registry: adăugarea, ștergerea și editarea setărilor de registry, precum și editarea stării biților individuali ai parametrului. În acest scop sunt utilizate cuvinte cheie separate AddReg, DelReg, BitReg.
Sintaxa de bază a fișierelor inf
Înainte de a descrie cuvintele cheie cu care puteți lucra cu registrul, să ne referim pe scurt la sintaxa de bază a unui fișier inf infinit (adică nu este extins).
Mai întâi de toate, uită-te la Listing 2.02. Anuntul dat conține șablonul celui mai simplu fișier inf.
Fișierele .inf constau din cuvinte cheie, secțiuni și comenzi.
Partiții sistem și utilizator
Secțiunile pot fi personalizate, ale căror nume pot fi oricare și ale căror nume sunt strict definite. De exemplu, în fișierul afișat în Lista 2.01, secțiunile Versiune și DefaultInstall sunt partițiile de sistem.
Versiunea Versiunea secțiunii este o parte obligatorie a oricărui fișier inf. Cel puțin trebuie să conțină un cuvânt cheie - Semnătura. Acest cuvânt cheie determină versiunea sistemului de operare pentru care a fost creat fișierul inf.
De exemplu, în cazul în care inf-fișierul este creat pentru familia Windows 9x de sisteme de operare (ca regulă, astfel de inf fișiere suportă toate sistemul de operare Windows, indiferent de familia căreia îi aparțin), atunci valoarea cuvântului cheie ar trebui să fie un șir de caractere $ CHICAGO $. Dacă fișierul este creat pentru sistemele de operare Windows NT de familie, atunci valoarea cuvântului cheie ar trebui să fie un șir de caractere $ Windows NT $.
DefaultInstall O altă secțiune obligatorie a fișierului inf este secțiunea DefaultInstall. Această secțiune este prima secțiune a fișierului inf pe care sistemul de operare va începe să o proceseze. În această secțiune trebuie să fie descrise toate cuvintele cheie necesare.
Cuvinte cheie
De obicei, cuvintele cheie sunt șiruri speciale care indică secțiunile personalizate ale fișierului inf. În funcție de numele cuvântului cheie, conținutul secțiunii de utilizator corespunzătoare poate fi tratat diferit.
Modalități de rulare a fișierelor inf
Sintaxa de bază a fișierelor informatice pe care le-am dezasamblat. Dar, înainte de a începe să descrieți cuvinte cheie specializate, ar trebui să vă gândiți, de asemenea, cum să rulați fișierele inf.
Rularea cu Shell Cea mai ușoară modalitate de a începe un fișier inf este să afișați meniul contextual și să selectați comanda SET. După ce faceți acest lucru, executați programul InfDefaultInstall.exe.
Programul InfDefaultInstall.exe este o inovație a sistemului de operare Windows Vista. Acest program este doar o shell care rulează comanda rundll32.exe setupapi, InstallHinfSection DefaultInstall 132 "calea către fișierul inf".
Folosind comanda Executare rundll32.exe inf-fișier și aveți posibilitatea să proprii - cu SetupAPI comanda rundll32.exe, InstallHinfSection «secțiunea inițială“ «stegulețe», «calea de a inf-file». Acesta utilizează această comandă program de InfDefaultInstall.exe.
- Partiția inițială. Specifică secțiunea fișierului inf care conține cuvintele cheie. Când utilizați programul InfDefaultInstall.exe, această secțiune ar trebui să fie întotdeauna secțiunea DefaultInstall. Dacă executați fișierul inf cu comanda rundll32.exe, puteți specifica singură partiția de pornire.
- Steaguri. Steagurile vă permit să specificați acțiunile care vor apărea după instalarea fișierului inf. Există următoarele steaguri.
- 128. După instalarea fișierului inf, nu este necesar să reporniți computerul.
- 129. După instalarea fișierului inf, reporniți computerul.
- 130. După instalarea fișierului inf, solicitați utilizatorului să repornească computerul.
- 131. Dacă sistemul de operare determină necesitatea repornirii computerului, efectuați-l.
- 132. Dacă sistemul de operare determină necesitatea repornirii computerului, întrebați-l pe utilizator înainte de a reporni.
- Calea către fișierul inf. Specifică calea către fișierul inf pe care doriți să îl instalați și numele acestuia.
Rularea avansate inf-fișier Dacă creați un fișier inf-extensie, apoi modul standard de a instala inf-fișiere, nu veți face. Pentru a instala extins inf-fișier, trebuie să utilizați comanda rundll32.exe ADVPACK.dll, numele LaunchINFSectionEx «a inf-fișier“, «secțiunea inițială», «numele de fișier în cabină», «pavilion». Face parte din această echipă ca numele inf-fișier și secțiunea inițială dintre noi sunt deja familiarizați cu echipa rundll32.exe pentru a instala obișnuite INF-fișiere. Restul echipei vor fi discutate mai jos.
În conformitate cu trucurile, utilizatorii sistemului de operare Windows înțeleg diferitele metode de modificare a setărilor de registry, prin care sunt activate unele funcții Windows suplimentare sau comportamentul sistemului de operare în sine se schimbă în bine.
După cum sa menționat mai sus, singura modalitate de a instala inf-fișier avansat este de a utiliza Rundll32.exe de comandă. Cu toate acestea, dacă lucrați adesea cu astfel de fișiere infamice, poate părea incomod pentru dvs. În acest caz, puteți crea o comandă suplimentară pentru a le instala în modul avansat din meniul contextual INF-fișiere. Este suficient pentru a seta parametrul (implicit) ramura de înregistrare HKCR \ inffile \ shell \ extins instala \ de valoarea de comandă rundll32.exe ADVPACK.dll, LaunchINFSectionEx% 1, DefaultInstall. După aceea, noua echipă a extins instala apare în meniul contextual INF-fișiere.
De exemplu, modificarea de mai sus poate fi efectuată utilizând fișierul reg-simplu prezentat în Lista 2.03.
Modificarea setărilor registrului
Pentru a edita parametrii și cheile de registry utilizând fișiere inf, se folosește cuvântul AddReg.
Acest cuvânt cheie indică secțiuni ale fișierului inf (dacă doriți să specificați mai multe partiții, doar le listați prin virgule) care conțin o descriere a setărilor de registry care sunt în curs de editare. Secțiunile care sunt descrise de acest cuvânt cheie sunt procesate secvențial. Aceste secțiuni au următorul format (a se vedea Listing 2.04).
Partea rădăcină Această parte a liniei definește cheia registrului rădăcină în care este localizat parametrul care trebuie modificat.
În acest caz, în loc de numele partiției rădăcină trebuie să specificați este deja familiar pentru noi privind desemnarea programului reg.exe HKCU, HKLM, HKU, HKCR (HKEY_CLASSES_ROOT înlocuiește partiția rădăcină), HKCC (înlocuiește HKEY_CURRENT_CONFIG partiția rădăcină), HKR (înlocuiește ramura de registru HKLM \ SYSTEM \ CurrentControlSet \ control \ Clasa \\ «număr de dispozitiv“ și este utilizat la instalarea echipament nou).
Filiala de registru Această parte a liniei indică restul căii spre filiala de registru în care este localizat parametrul. Dacă ramura de registru conține spații, trebuie să fie citată.
Parametru Această parte a liniei conține numele parametrului a cărui valoare este modificată. Dacă numele parametrului conține spații, acesta trebuie citat.
În cazul în care trebuie să modificați valoarea parametrului (implicit) al acestei ramuri de registru, nu specificați nimic în această parte a liniei, lăsând-o goală.
Parametrul tipului de parametru Mai întâi, utilizând parametrul de tip de parametru, specificați tipul parametrului care trebuie modificat. În plus, utilizând acest steguleț, puteți specifica informații suplimentare despre modificarea parametrului.
Parametrul tipului de parametru este o mască de biți, scopul căruia biți este descris mai jos.
Acest steag poate fi utilizat numai pentru parametrii de tip REG_MULTI_SZ.
Valoarea parametrului Această parte a liniei conține noua valoare a parametrului care trebuie modificat sau adăugat.
Rezumă
Să rezumăm toate posibilitățile pe care le oferă cuvântul cheie AddReg.
Pentru a crea un parametru sau pentru a modifica valoarea acestuia, trebuie să utilizați șirul "partiție rădăcină", "ramură de registry", "nume de parametru", "pavilion", "valoare parametru". Prin adăugarea maselor de biți corespunzătoare la pavilion, puteți stabili dacă valoarea parametrului va fi modificată dacă este deja prezentă în registru (sau dacă nu este în registru).
Pentru a adăuga un șir de caractere la o valoare de parametru de tip REG_MULTI_SZ, trebuie să utilizați un șir de forma „partiția rădăcină“, „sucursală registru“, „Numele parametrului“, 0x00010008, „valoare“.
Pentru a elimina o intrare din registru, trebuie să utilizați șirul "partiție rădăcină", "sucursală registru", "nume parametru", 0x00000004.
Pentru a crea o ramură de registry, trebuie să utilizați șirul "partiție rădăcină", "registru", 0x00000010.
De exemplu, să aruncăm o privire asupra unui simplu fișier inf (Listing 2.05), care dezactivează capacitatea de a lansa automat CD-urile introduse în unitate. Pentru aceasta, setează parametrul REG_DWORD de tip Autorun la 0.
În plus, inf-fișier se adaugă, de asemenea, la valoarea parametrului de tip REG_MULTI_SZ AutoRunAlwaysDisable unități de nume, CD-uri autostart care nu sunt permise în nici un caz.
Eliminarea opțiunilor și a cheilor de registry
În ciuda faptului că puteți șterge valoarea registrului folosind cuvântul cheie AddReg, pentru această operație a fost creat un nou cuvânt cheie DelReg.
Ca și cuvântul cheie AddReg, cuvântul cheie DelReg indică secțiunea utilizator a fișierului inf. Numai acum, secțiunea va conține informații despre ramura sau parametrul pe care doriți să îl eliminați din registru. Formatul liniilor din această secțiune este următorul: "root root", "branch registry", "parameter", "delete flag flag", "sample for deletion".
Atribuirea unor astfel de părți ale șirului ca partiție rădăcină, ramură de registru și parametru sunt deja cunoscute de descrierea cuvintelor cheie AddReg. Restul liniei vom lua în considerare acum.
Ștergerea semnalizării de funcționare Următoarele funcții de ștergere sunt disponibile.
Removal EXEMPLU Această parte din șirul este aplicată numai atunci când îndepărtați parametrul tip REG_MULTI_SZ (bitmask 0h00018002 flag) și definește o parte din valoarea parametrului, care va fi exclus din setarea.
Lucrul cu o mască mică
O caracteristică unică a fișierelor inf standard este implementarea posibilității de a lucra cu biți individuali cu valoarea parametrului de registry. Pentru aceasta, cuvântul cheie BitReg este destinat. Acest cuvânt cheie indică secțiunile personalizate, care pot conține o linie de următorul format: „Registrul partiție rădăcină“, „sucursală registru“, „parametrul“, „pavilion operațiune“, „masca de funcționare“, „numărul de octeți ai parametrului“.
După cunoașterea cuvintelor cheie AddReg și DelReg nu cunoaștem doar următoarele părți ale liniilor acestui format.
Parametrul de funcționare Folosind pavilionul de funcționare, puteți defini acțiunea pe care o vom efectua asupra unor biți specifici ai parametrului - fie să le resetați, fie să le setați. Acest steag poate lua următoarele valori.
- 0h00000000. Resetați bitul specificat.
- 0h00000001. Setați bitul specificat.
- 0h00040000. Faceți aceste modificări în registrul pe 32 de biți, nu în registrul pe 64 de biți. Această mască bit poate fi folosită pe sistemele de operare pe 64 de biți.
Această operațiune masca a liniei vă permite să specificați biți dintr-un singur octet din valoarea parametrului (o dată ce le puteți modifica numai biții de unul dintre octeți ai parametrului), peste care aveți nevoie pentru a efectua operația, o anumită operațiune de pavilion (reset sau setarea parametrilor).
Masca de operare trebuie să fie formată din 8 cifre, fie ele sau zerouri. Toți biți ai octetului de parametru corespunzător, unde unitatea este indicată în masca de operare, vor fi resetați sau setați (în funcție de valoarea indicatorului de funcționare).
Număr octet în valoarea parametrului Deoarece un bit al inf fileului poate fi editat numai de biți ai unuia dintre octeții valorii parametrului, acest câmp specifică octetul parametrului la care se va aplica masca de operare.
Rețineți că începutul numerotării bytes a valorii parametrului depinde de tipul parametrului. Dacă ați editat parametrul REG_DWORD valoare de tip, cea mai semnificativă (adică, capătul din dreapta) octet al parametrului este 0. Dacă numărul este editat parametru de tip valoare REG_BINARY, atunci octetul cel mai puțin semnificativă a valorii parametrului (stânga) este numărul 0.
Evaluare: 0
Evaluare: 1 2 3 4 5