Cartea "caracteristici nedocumentate Windows XP. Biblioteca de utilizare", Capitolul 1. rundll32.exe, partea 1.
Rundll32.exe, este un mic program care vine cu toate versiunile de Windows. Acest program a fost scris de către programatorii Microsoft pentru nevoile lor și este capabil de a îndeplini orice funcție Wind32 API descrisă în bibliotecă, ca și în cazul în care această funcție este numit de program sau un program cu drepturi depline. Rundll32.exe Programul a fost creat pentru diferitele funcții ale fișierelor script și INF-fișiere și îl puteți utiliza pentru a efectua o mulțime de trucuri interesante și utile, descrierea pe care o vom face în acest capitol.
Înainte de a descrie comenzile care sunt disponibile atunci când se lucrează cu rundll32.exe, ne-ar dori să restrânge și mai mult domeniul de aplicare al funcțiilor pe care trebuie să se înțeleagă prin „orice“ funcții care pot fi efectuate cu ajutorul acestui program. În ciuda faptului că Rundll32.exe program este capabil de a îndeplini orice funcție, nu toate funcțiile pot fi efectuate - întregul este că unele dintre funcțiile se pot aștepta orice parametri speciali care nu sunt statice, și produse cu ajutorul altor funcții. Chiar situație mai precară poate tarif în cazul în care funcția nu prezintă parametri, dar funcționează utilizând conținutul de registre sau memorie. În acest caz, apelul acestei funcții poate fi similar cu un joc de zaruri - dacă ai noroc și toți parametrii necesari ai acestei funcții va fi corectă, atunci acesta poate fi executat.
Sintaxa programului rundll32.exe este destul de simplu: rundll32.exe „calea spre bibliotecă și numele său“, „numele funcției din bibliotecă“, „o listă de parametri necesari pentru aceasta, separate prin virgulă“. Dar cum se poate apela acest program? Pe lângă utilizarea apelului la codul de script-ul, care va fi discutat în următoarele capitole ale cărții, acest program poate fi accesat cu ajutorul unui dialog periodic EXECUTE (sau în echipă pentru a crea o comandă rapidă). De exemplu, tipul în Executare comandă de dialog rundll32.exe Shell32.dll, ShellAboutA și veți vedea un dialog ca cea prezentată în figura 1.
Figura 1 Să începem cu o introducere în această carte cu sistemul de operare
Avertizare Dacă numele parametrilor funcției și a bibliotecilor, registrul în care introduceți comanda, nu este important, atunci, pentru numele funcției trebuie să fie monitorizate cu atenție pentru funcțiile de scriere, atât în ceea ce privește greșelile, și din punctul de vedere al fiecărui caz caracter, sau program Rundll32. exe nu poate găsi nici o funcție. De exemplu, dacă în loc de funcția ShellAboutA nume introduceți numele ShellaboutA rundll32.exe apoi afișează un mesaj despre imposibilitatea unui apel de funcție, deoarece nu există în bibliotecă corespunzătoare.
Din cele câteva paragrafe anterioare ați învățat practic toate calculele teoretice, care sunt necesare pentru a lucra cu programul Rundll32.exe. Acum, să înceapă transferul de oportunitățile pe care acest program poate oferi utilizatorului. Și vom începe cu o descriere a funcțiilor CPL-fișier.
Notă: Înainte de a începe luarea în considerare a diferitelor funcții care pot fi realizate folosind programul rundll32.exe, aș dori să clarifice modul de înregistrare a anumitor funcții. Cu greu mai sus am considerat echipa care îndeplinește funcția ShellAboutA. După cum puteți vedea, această funcție se termină în unele, nu este caracterul pe care doriți - A. Acest simbol indică sistemului că această funcție utilizează pentru funcționarea sa de caractere ASCII (utilizați un octet pentru a reprezenta un singur caracter). De asemenea, există un alt personaj care se poate încheia funcția - simbolul W. El spune că sistemul utilizează această funcție (doi octeți utilizați pentru a reprezenta un singur caracter) pentru personajele sale Unicode de lucru. Deci, aceste caractere sunt complet opționale (deși, în cazuri foarte rare, acestea sunt necesare) - dacă introduceți numele funcției, fără ultimul caracter (A sau W), atunci sistemul va încerca să determine ce codificare ar trebui să fie utilizat.
În ciuda faptului că anterior a declarat că programul rundll32.exe poate apela funcții de bibliotecă, de fapt, capacitățile sale sunt mult mai extinse - ea poate apela o funcție de oriunde, în cazul în care este listat, fie că este vorba de bibliotecă, CPL-fișiere sau executabil de sine fișier.
CPL-fișier este un fișier special (numite și applet-uri), care este o casetă de dialog, care este numit de către panoul de control și utilizat pentru stabilirea unei singure componente a sistemului de operare. Cele mai multe dintre referirile la fișiere pot CPL fi găsite în panoul de control dosar, care poate fi accesat fie prin intermediul meniului Start sau prin utilizarea apelului de comandă de control sau prin utilizarea de apel de comandă shell: ControlPanelFolder. Dar, în plus față de asteptare panoul de control al sistemului de operare Windows vă permite să apelați CPL-fișiere prin introducerea numele lor în caseta de dialog Run (în acest caz, indică extensia .cpl necesară).
În contextul acestei cărți, nu vom lua în considerare conținutul CPL-fișier, se presupune că cititorul le-a folosit deja. Excepția poate fi numai acele cazuri în care Rundll32.exe de comandă corespunzătoare depinde de setarea unor parametri, accesul la care pot fi obținute de la cpl-fișier.
Access.cpl Acest applet este conceput pentru a modifica diverse setări speciale ale tastaturii, sunet, mouse-ul, sau shell-ul Windows. Toți acești parametri au fost dezvoltate special pentru Microsoft programatori persoanelor cu handicap, cu toate că unele dintre opțiunile prezentate în applet-ul poate fi util în activitatea de zi cu zi a tuturor utilizatorilor de Windows XP.
Pentru a invoca applet-ul folosind programul rundll32.exe, trebuie să utilizați comanda rundll32.exe Access.cpl, DebugMain. Aici, în principiu, și toate comenzile care sunt suportate de către access.cpl applet.
Appwiz.cpl echipa, a fost numit după această subsecțiune a cărții, se deschide Add / Remove Programs caseta de dialog. Cu acest dialog, puteți șterge sau modifica ca o componentă a diferitelor programe instalate pe sistemul dvs., și înlocuiți părțile componente ale sistemului de operare.
Notă: Nu toate componentele sistemului de operare pot fi eliminate folosind această casetă de dialog. Unele dintre componentele înainte de demontare necesită etape suplimentare (de exemplu, îndepărtarea de jocuri de sistem standard de operare Minesweeper si Solitaire), care vor fi discutate în apendicele la această carte.
Spre deosebire de applet access.cpl examinat anterior, applet appwiz.cpl nu poate te suna folosind rundll32.exe instrucțiuni de program. Dar vă permite să efectuați alte acțiuni, care nu se poate face în alte moduri. Dar, înainte de a lua în considerare posibila acțiune care permite executarea appwiz.cpl applet, să spunem câteva cuvinte despre activitatea applet - ne va ajuta la înțelegerea următoarele comenzi înaintea noastră lucrarea în sine.
appwiz.cpl Deci, applet. Așa cum am spus, acest applet conține o listă cu toate programele instalate - pentru a afișa lista de programe care utilizează lista programelor instalate (Ris.1.02). Dar cum se formează această listă? S-ar putea crede că această listă este generată de fiecare dată când applet-ul este pornit appwiz.cpl prin scanarea sistemul de fișiere Windows, dar acesta este de fapt mult mai ușor. De fapt, lista este situată în registrul Windows. Pentru a stoca această listă este utilizată ramura de registru HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WINDOWS \ CurrentVersion \ UNINSTALL, care conține un set de sub-secțiuni, fiecare dintre care definește un singur element din lista de programe instalate. Nume de sub-date de identificare a programului selectat pentru appwiz.cpl applet, dar care nu sunt utilizate în lista de programe instalate. Pentru a specifica numele elementului din listă, DISPLAYNAME parametrul șir, situat în fiecare dintre sub-ramura considerată de către noi (Figura 2).
Figura 2 Crearea unei liste de programe instalate appwiz.cpl applet
Nu vom spune pe deplin despre opțiunile subramură registry HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WINDOWS \ CurrentVersion \ UNINSTALL - acest lucru nu este tema principală a cărții. Prin urmare, cei care sunt interesați de acest subiect, este recomandabil să cumpere o carte în plus dedicat doar ei. Să ne aflăm astăzi în ceea ce a fost început și povestea din lista de programe metoda de stocare applet appwiz.cpl - descrierea echipei rundll32.exe lui, cu ajutorul căruia se poate elimina programul specificat în această listă.
Figura 3 subsecțiune ne pentru a șterge programul numit EVEREST PROFESSIONAL_IS1
După apelarea acestei comenzi începe eliminarea de comandă, care este înregistrată în tipul șir de parametri UninstallString subsecțiune EVEREST PROFESSIONAL_IS1 registru nostru de ramură (Figura 3). Dar, în plus față de eliminarea programelor applet appwiz.cpl vă permite să efectuați alte comenzi interesante folosite de shell Windows. Prima dintre aceste comenzi este comanda rundll32.exe appwiz.cpl, ConfigStartMenu, vă permite să ștergeți conținutul meniului Start. După apelarea acestei comenzi, veți vedea o casetă de dialog care este afișată în figura 4. Folosind acest dialog, puteți elimina cele din lista de elemente de meniu Start, care sunt situate în% USERPROFILE% \ meniul principal (foldere, cum ar fi administrare, STANDARD sau pornire nu poate fi îndepărtată) .
Figura 4 Rezultatul appwiz.cpl rundll32.exe, ConfigStartMenu
O alta echipa care poate fi numit prin appwiz.cpl applet, este comanda rundll32.exe appwiz.cpl, NewLinkHere «calea către katolog“. Cu această comandă puteți crea o comandă rapidă în directorul pe care îl specificați. În acest scop, un maestru special pentru a crea comenzi rapide va fi numit. De asemenea, accesul la master pot fi obținute din lista de meniu pop-up create sau desktop dosar, dacă selectați comanda rapidă în lista de clic.
Bthprops.cpl BTHPROPS.CPL - este un applet conceput pentru a regla funcționarea și interacțiunea dispozitivelor conectate printr-o conexiune fără fir Bluetooth. În mod implicit, în cazul în care sistemul nu este instalat (sau nu au fost raportate) nici un dispozitiv alimentat prin Bluetooth, applet-ul BTHPROPS.CPL toate opțiunile personalizate disponibile pentru a le. Dacă doriți să se uite la ce fel de applet, atunci puteți încerca să utilizați anumite comenzi rundll32, folosind un fișier de applet pentru munca lor. Din păcate, folosind aceste comenzi nu pot fi cauza ferestrei applet, dar puteți utiliza unele dintre caracteristicile pe care le oferă. De exemplu, puteți apela un agent de conexiuni Bluetooth, cu care se poate conecta un dispozitiv Bluetooth pentru a transfera sau trimite fișiere și să configurați dispozitivele Bluetooth deja conectate. Pentru a face acest lucru, trebuie să efectuați mai multe acțiuni. În primul rând, este necesar să se atribuie un parametru ICON DWORrundll32.exe tip D zona de notificare, situată în ramura înregistrare HKEY_CURRENT_USER \ Control Panel \ BLUETOOTH, valoarea 1. Acest lucru este necesar, astfel încât să putem interacționa cu agentul prin intermediul pictogramelor sale conexiuni afișate în tavă. În al doilea rând, trebuie să utilizați comanda pentru a porni agentul rundll32.exe: bthprops.cpl Rundll32. BluetoothAuthenticationAgent. După introducerea acestei comenzi, pictograma apare în bara de sistem, similar cu cel prezentat în Figura 5.
Figura 5 Apel echipa bthprops.cpl rundll32.exe. BluetoothAuthenticationAgent
După închiderea agentului de notificare zona de conexiuni de valoare a parametrului Pictograma devine automat 0.
Figura 6 Apel echipa bthprops.cpl rundll32.exe. BluetoothDisplayDeviceProperties
Comenzile similare pot fi aplicate la irprops.cpl applet. În acest caz, aveți nevoie pentru a echipa rundll32.exe în loc miniaplicații bthprops.cpl specifica applet irprops.cpl. În ciuda faptului că utilizați două echipe diferite applet rezultat va fi la fel.