![]() |
||||||||||||||||||||||||||||||||
Rundll32
Author: Abdel YEZZA Level: Begginer/Intermediate
Avertissement : Si vous modifiez des paramètres dans les différentes boîtes de dialogue résultantes des
commandes ci-dessous, vous risquez peut-être des impacts négatifs, notamment par rapport à la sécurité
d'Internet Explorer. Notez aussi que les confirmations ci-dessous s'appliquent uniquement si vous
disposez de la version 7 d'Internet Explorer.
Pour lancer l'applet (.cpl) Internet Explorer en affichant un onglet particulier par le biais de son index n en commençant par 0, il suffit de lancer la commande : rundll32 shell32.dll,Control_RunDLL inetcpl.cpl,,nComme par exemple, pour afficher l'onglet Avancés, il suffit d'exécuter : rundll32 shell32.dll,Control_RunDLL inetcpl.cpl,,6Cette syntaxe fonctionne de la même façon pour toutes les applets. La formule la plus générale prend la forme : rundll32 shell32.dll,Control_RunDLL <Nom de l'applet>,<Index>,<Arguments à passer>La figure ci-dessous schématise le fonctionnement de Rundll32 : ![]() Afin d'illustrer par un exemple concret du schéma ci-dessous, voici un extrait de code en C++ (version AINSI) permettant de lancer les propriétés d'un ordinateur Windows (l'applet sysdm.cpl): typedef void (_stdcall *PFUNCTION_ENTRYPOINT)( HWND hwndStub, HINSTANCE hAppInstance, LPSTR lpCmdLine, int nCmdShow ); PFUNCTION_ENTRYPOINT pEntryPoint=NULL; HMODULE hLib = LoadLibrary(_T("Shell32.dll")); if (hLib) pEntryPoint = (PFUNCTION_ENTRYPOINT) GetProcAddress(hLib, _T("Control_RunDLLA")); if (pEntryPoint) pEntryPoint(NULL, ::GetModuleHandle(), _T("sysdm.cpl,,3"), SW_SHOW); FreeLibrary(hLib);Pour simplifier ces appels, un outil est disponible sous Windows, Control qui joue le rôle de la première partie, à savoir : rundll32 shell32.dll, Control_RunDLL. Voici un exemple pour afficher l'onglet Avancés des options Internet (voir ci-dessus): control inetcpl.cpl,0,6Notez que lancer cet outil sans paramètres ouvre tout simplement le panneau de configuration. Voici un exemple pour installer un fichier MyInfFile.inf qui redémarre la machine si nécessaire sans demander à l'utilisateur:
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 131 C:\WINDOWS\INF\MyInfFile.inf
Dans cet exemple, shell32 charge la dll SETUPAPI.DLL, récupère l'adresse de la fonction
InstallHinfSection puis l'exécute en lui passant les arguments :
Voici une liste des commandes que l'on peut effectuer sur Windows Vista (certaines pouvant fonctionner également sur Windows XP, mais pas nécessairement de la même façon) :
|