25 lug 2009

RUNDLL32.EXE Usare le funzioni nascoste di Windows

L’eseguibile di Windows Rundll32.Exe fa molto più che spegnere il sistema rapidamente. Esso dà accesso a più di 200 utili funzioni nascoste all’interno di Windows.                   Un baule pieno di funzioni segrete in attesa di essere scoperte e utilizzate si nasconde nei file Dll (Dynamic Link Libraries) di Windows.Queste librerie sono vere e proprie “collezioni” di funzioni del sistema operativo e delle applicazioni installate, che possono essere usate dai programmi, ma non direttamente
dall’utente. Qui interviene il programma Rundll32.Exe, che serve come interfaccia per utilizzare immediatamente le funzioni contenute nelle librerie. Il vantaggio nell’utilizzare tali funzioni direttamente dalle Dll è nell’accesso più rapido
alle utili funzioni che, per esempio, sono state salvate come collegamenti nel desktop o sono utilizzate negli script.

Utilizzare subito le funzioni                                               È possibile coordinare tutte le funzioni relative alle stampanti tramite il Prompt dei comandi. Digitando il comando rundll32.exe printui.dll,PrintUIEntry /? si apre la finestra Interfaccia utente della stampante che elenca le numerosissime funzioni disponibili e i relativi comandi.
La tabella qui sotto mostra ulteriori interessanti funzioni, che possono essere richiamate direttamente. Ovviamente non è possibile descriverle in dettaglio, sono oltre 200.

Funzione Comando

Lanciare un’applicazione
a scelta

Rundll32.exe shell32.dll,
ShellExec_RunDLL %1

Aprire la finestra Rimozione
sicura dell’hardware

Rundll32.exe shell32.dll,
Control_RunDLL hotplug.dll

Visualizzare Apri con…
per il <file>

Rundll32.exe shell32.dll,
OpenAs_RunDLL <file>

Stampare un file Html

Rundll32.exe mshtml.
dll,PrintHTML <file>

Gestione condivisione
quote disco in rete

Rundll32.exe ntlanui.dll,
ShareManage

Impostare il computer
in modalità stand-by

Rundll32.exe PowrProf.
dll,SetSuspendState

Bloccare il computer

Rundll32.exe user32.
dll,LockWorkStation

Mostrare le informazioni
di Windows

Rundll32.exe user32.
dll,ShellAboutW

e la cosa occuperebbe decine di pagine. Per avere una completa descrizione (in inglese) delle varie funzioni si può consultare la pagina www.dx21.com/scripting/rundll32/refguide.asp?p=a: è divisa per funzioni, dunque consente di trovare rapidamente i comandi cui si è interessati.

Accedere alle applet di sistema
Con l’aiuto del comando Rundll32 è possibile aprire direttamente qualsiasi elemento del Pannello di controllo e persino attivare immediatamente la scheda desiderata. Ciò
può avvenire tramite un file Cpl. Utilizzare sempre la libreria Shell32.Dll con ControlRunDLL come punto di ingresso. Esso
indica infatti la posizione nel file Dll in cui inizia la routine Control_Run DLL. Alcuni file Cpl contengono più di una applet (finestre di dialogo del Pannello di controllo). Per selezionare la finestra di dialogo desiderata inserire il suo numero di riferimento come parametro, con il prefisso “@”. Ricordare che la numerazione inizia sempre con 0. Se non si imposta tale parametro, Windows aprirà la prima delle applet disponibili.Per impostare la scheda che si desidera visualizzare inserirne il numero di riferimento come secondo parametro dopo una virgola, sempre ricordando che la prima scheda è numerata 0 e non 1. Per esempio con “@0,2” viene aperta la terza scheda della prima finestra di dialogo di un file Cpl. Un
esempio completo: rundll32.exe shell32.dll, Control_RunDLL main.cpl,@0,2
Questa linea di comando apre le Proprietà del Mouse e mostra la scheda Opzioni puntatore che è appunto la terza disponibile, corrispondente alla numerazione 2 partendo da 0. Nella tabella al termine di questo tip sono elencati i file Cpl che consentono l’accesso alle principali finestre di dialogo del Pannello di controllo.

Comprendere la sintassi dei comandi
Chi desidera approfondire questo argomento troverà utili alcune informazioni più dettagliate sulla sintassi dei comandi, per esempio per utilizzare i comandi di Rundll32 nei propri listati.I comandi usano il seguente formato:         RUNDLL32.EXE [NomeDLL],[Punto diingresso] [Argomento opzionale]
Il nome della Dll non deve contenere alcuno spazio e deve seguire il vecchio formato DOS 8.3. Esso è seguito da una virgola, dopo la quale, senza alcuno spazio, è indicato il punto di ingresso nella Dll. Va ricordato che Rundll32.Exe fa distinzione tra maiuscole e minuscole. I comandi possono essere digitati direttamente nel Prompt o nella finestra Esegui
che appare selezionando Start/Esegui nel menù di Windows, oppure possono essere inseriti in script per l’elaborazione batch, automatizzando le operazioni. Se è necessario attendere il termine di un comando prima di impartirne un altro, preporre al comando la stringa Start/Wait.
I comandi possono anche essere richiamati da una applicazione Vba (Visual Basic for Applications). Per esempio è possibile creare questo codice nell’editor Vba:
Option Explicit
Private Sub SetDateTime()
Call Shell”rundll32.exe shell32
dll,Control_RunDLL timedate.cpl”)
End Sub

In questo listato il comando viene invocato tramite la funzione Shell e apre la finestra Proprietà – Data e ora del Pannello di controllo.

Elementi del Pannello
di controllo

File Cpl
Proprietà - Schermo Desk.Cpl
Aggiornamenti automatici Wuaucpl.Cpl
Account utente Nusrmgr.Cpl
Proprietà - Data e ora Timedate.Cpl

Proprietà – Opzioni
risparmio energia

Powercfg.Cpl
Windows Firewall Firewall.Cpl
Installazione guidata hardware Hdwwiz.Cpl
Proprietà – Internet Inetcpl.Cpl
Connessioni di rete Ncpa.Cpl
Centro sicurezza PC Windows Wscui.Cpl
Installazione applicazioni Appwiz.Cpl
Proprietà – Suoni e periferiche audio Mmsys.Cpl
Proprietà del sistema Sysdm.Cpl
Amministrazione origine dati Odbc Odbccp32.Cpl

Nessun commento:

Posta un commento