Précédent   Forum des professionnels en informatique > Logiciels > Autres Logiciels
Autres Logiciels Bureautique, navigateurs, clients mails, traitements de textes, tableurs, multimédia, logiciels divers, etc...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2006, 23h07   #1
Membre éclairé
 
Avatar de john.fender
 
Homme John Fender
Analyse système
Inscription : décembre 2003
Messages : 298
Détails du profil
Informations personnelles :
Nom : Homme John Fender
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Analyse système
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2003
Messages : 298
Points : 335
Points : 335
Par défaut Les mysteres de rundll32.exe

Bonjour à tous,

je suis novice en masterisation, mais je m'y met doucement. Ma question est assez technique en fait. voila, vous connaissez cette ligne de commande qui permet d'actualiser le bureau suite à une modification par exemple du fond d'ecran dans la registrery en manuel :
(clé que je modifie => HKCU\Control panel\Desktop\Wallpaper\image.bmp)

Code :
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
(Vous pouvez la mettre dans un batch ou la taper dans executer, c'est pareil).

Ca permet de prendre en compte ma modif que j'ai faites a la main dans la regitrery (le chemin du fond d'ecran). Ca ferait la meme chose si j'appuie sur appliquer dans les proprietes d'affichages, apres avoir choisit mon fond.

Oui, mais voila, mon probleme n'est pas cette ligne, elle marche tres bien, mon probleme c'est la maniere a utiliser pour la retrouver. J'ai essayer plusieurs deboggeur, ou moniteur d'api, en changeant le fond d'ecran à chaque fois, je n'ai jamais retrouvé ma ligne de commande la dedans.

Donc ma question, c'est comment trouver les lignes de commande que passe de systeme à rundll32.exe lorsque je m'en sert au travers de l'interface windows (je clique sur les assistants).

Costaud, non ?

Merci quand même !
john.fender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2006, 23h29   #2
Membre Expert
 
Avatar de Nemesys
 
Étudiant
Inscription : mars 2006
Messages : 1 910
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 1 910
Points : 2 086
Points : 2 086
Une question : quel interet ?

Pourquoi vouloir bidouiller ca? Pour un fond d'ecran
Nemesys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2006, 23h36   #3
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 484
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 484
Points : 28 764
Points : 28 764
Envoyer un message via MSN à Médinoc
L'interface Windows n'appelle pas rundll32: Elle appelle directement la fonction UpdatePerUserSystemParameters() de USER32.DLL.

Forcément, si tu prends le problème à l'envers...
Médinoc est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 00h05   #4
Membre éclairé
 
Avatar de john.fender
 
Homme John Fender
Analyse système
Inscription : décembre 2003
Messages : 298
Détails du profil
Informations personnelles :
Nom : Homme John Fender
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Analyse système
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2003
Messages : 298
Points : 335
Points : 335
Wow, toujours aussi impressionnant le forum de developpez.com, je pensai pas avoir des réponse samedi soir ^^

Donc, pour vous répondre :

@Médinoc : L'interface windows appele bien rundll32. Mon exemple le montre, mais il est facile de le verifier dans le gestionnaire de tâche, à l'appel de l'assistant de réglage de l'affichage, le processus rundll32 apparaît. C'est donc bien lui qui passe la commande à user32.dll, non ?

@Nemesis_ : Le fond d'écran n'est qu'un exemple, souvent la simple modification des base de registre ne suffit pas, il faut fermer et reouvrir la session pour voir appliquer les changements, puisque windows pre-load une partie de ses paramètres en mémoire. Ce que je cherche, c'est trouver les commandes que les assistants passent à rundll32, pour pouvoir moi même les re-utilisers.

Je peux te donner un autre exemple, si tu veux : dans les options des dossiers, il y a une clé qui determine l'affichage web ou classique des dossiers. La seule maniere que j'ai actuellement de faire prendre en compte ces parametres c'est de killer l'explorer windows.
john.fender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 10h17   #5
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 484
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 484
Points : 28 764
Points : 28 764
Envoyer un message via MSN à Médinoc
Citation:
@Médinoc : L'interface windows appele bien rundll32. Mon exemple le montre, mais il est facile de le verifier dans le gestionnaire de tâche, à l'appel de l'assistant de réglage de l'affichage, le processus rundll32 apparaît. C'est donc bien lui qui passe la commande à user32.dll, non ?
Je ne sais pas si tu as remarqué, mais moi, j'ai un rundll32 qui tourne en permanence, et son parent est directement explorer.exe...

À ma connaissance, rundll32 ne sert qu'à deux choses:
  • En arrière-plan, maintenir certaines DLLs en mémoire pour un accès plus rapide, et peut-être d'autres tâches
  • En ligne de commande, charger une DLL, appeler une fonction dedans, et quitter au retour de la fonction.
Windows ne passe pas par rundll32 pour appeler une fonction de ses DLLs système: Les fonctions sont appelée directement. Un raccourci ou un batch peuvent le faire, par contre.

Donc: Non, les assistants faisant partie de Windows, ils n'appellent pas rundll32, ce qui serait une grosse perte de temps et de performance. Ils appellent directement les fonctions des DLLs utilisées.
Médinoc est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 14h33   #6
Membre éclairé
 
Avatar de john.fender
 
Homme John Fender
Analyse système
Inscription : décembre 2003
Messages : 298
Détails du profil
Informations personnelles :
Nom : Homme John Fender
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Analyse système
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2003
Messages : 298
Points : 335
Points : 335
Je ne suis pas d'accord avec toi

D'abord je n'ai pas de rundll32 qui tourne en permanence pour ma part. Ensuite, Tout le panneau de configuration n'est que des raccourcis vers rundll32 du type : "rundll32.exe shell32.dll,Control_RunDLL "C:\Windows\system32\MMSYS.CPL,@0" (panneau son par ex.).

Enfin, lance un assistant et tue explorer, tu verra qu'il est toukours possible d'utiliser l'assistant alors que explorer à disparu.
john.fender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 18h48   #7
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 484
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 484
Points : 28 764
Points : 28 764
Envoyer un message via MSN à Médinoc
Je n'ai jamais dit que c'était explorer qui utilisait l'assistant...

En effet, après examen, certains assistants, sont lançés dans rundll32. En tournant ainsi dans un processus à part, ils gagnent en stabilité.
D'ailleurs, j'ai remarqué que le runDLL32 qui tournait en arrière-plan chez moi gérait l'icône de paramètres de ma carte NVidia.

À présent, je ne vois pas pourquoi les assistants appelleraient eux-mêmes rundll32 pour des choses qu'ils peuvent faire sans créer de nouveau processus (Car il ne faut pas oublier que toute instance de rundll32 est un processus, donc une consommation de ressources non-négligeable, tant pour l'exécution que pour la création).

Ainsi, les assistants du panneau de configuration tournent dans leur propre processus au lieu d'être fils d'explorer, mais ils sont en interaction directe avec l'utilisateur. Crois-tu vraiment que l'assistant des propriétés de l'arrière-plan appellerait rundll32 quand tu cliques sur "appliquer" ? Cela créerait un nouveau processus là où un simple appel à une fonction d'une dll déja chargée (user32.dll est chargée par tous les processus graphiques) suffirait. D'ailleurs, la boite de dialogue est bloquée pendant un moment, signe que tout cela ne se fait pas dans un thread à part (et à fortiori dans un processus séparé...)


RunDLL32 ne sert qu'à lancer une fonction d'une DLL dans un processus autonome. Si l'on n'a pas besoin d'un nouveau processus, on ne va pas en créer un pour le plaisir: Appeler directement la fonction en question est plus simple.
Médinoc est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 21h41   #8
Membre éclairé
 
Avatar de john.fender
 
Homme John Fender
Analyse système
Inscription : décembre 2003
Messages : 298
Détails du profil
Informations personnelles :
Nom : Homme John Fender
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Analyse système
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2003
Messages : 298
Points : 335
Points : 335
Bon, oublions un instant le débat sur rundll32, aprés tout c'est pas ca qui m'interesses. Tout cela ne m'aide pas beacoup à savoir quelle fonction est appellée au moment ou je fais mon clic sur le bouton appliquer, et c'est ca qui me tarabuste. r

undll32 me permet d'appeler des fonctions de dll windows comme user32 par exemple. ce que j'aimerai savoir sans me taper la msdn complete ni descendre en C++, c'est lesquelles et avec quel paramètres. Je sais pas comment tracer ces appels, j'arrives à chopper le numéro de hadler d'un bouton, mais c'est tout.
john.fender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 09h32   #9
Rédacteur/Modérateur
 
Avatar de evarisnea
 
Homme Evaris NGOUZO
Consultant informatique
Inscription : juin 2005
Messages : 1 887
Détails du profil
Informations personnelles :
Nom : Homme Evaris NGOUZO
Localisation : Cameroun

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 1 887
Points : 2 799
Points : 2 799
salut,
j'ai navigué sur une page telle que celle que tu recherches il y a quelques jours, donnes moi le temps de la retrouver et tu auras la liste complètes des fonctions appellées par RunDll2 avec leurs paramètres et ce à quoi elles servent si tu es toujours preneur bien sur 8)
evarisnea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 12h51   #10
Membre éclairé
 
Avatar de john.fender
 
Homme John Fender
Analyse système
Inscription : décembre 2003
Messages : 298
Détails du profil
Informations personnelles :
Nom : Homme John Fender
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Analyse système
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2003
Messages : 298
Points : 335
Points : 335
Ha moi je suis preneur, mais j'en ai vu beaucoup de ses pages ou en fait c'est juste les raccourcis pour lancer le panneau de configuration ou les assistants. Je crains donc que ce ne soit pas ca... Merci quand meme !
john.fender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 19h57   #11
Invité de passage
 
Inscription : mars 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1
Points : 1
Points : 1
Envoyer un message via MSN à fantome_de_nuit
Par défaut c simple !!

il faut savoir tout sur les PC ...notament les fichiers système mm s'ils sont aussi compliqué !! alors la prochaine fois fo demander la réponse pas de critique la question !! et merxi
fantome_de_nuit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h21.


 
 
 
 
Partenaires

Hébergement Web