P'tite question de fonctionnement Windows

Résolu/Fermé
Snowmann Messages postés 227 Date d'inscription samedi 14 octobre 2017 Statut Membre Dernière intervention 6 décembre 2020 - 2 nov. 2017 à 20:02
Snowmann Messages postés 227 Date d'inscription samedi 14 octobre 2017 Statut Membre Dernière intervention 6 décembre 2020 - 4 nov. 2017 à 09:33
Salut salut.

Cela fait un petit temps que je fais des commandes (batch entre autres) pour faciliter l'utilisation de l'ordinateur et je me demandais si toutes les actions mais vraiment toutes sont répertoriées quelque part, je m'explique ; Est-ce que les clics tels que "éjecter la clé usb" ou même les raccourcis clavier tels que ctrl C ou alt f4 ont un fichier de n'importe quelle sorte qui font la même action si on clique dessus ?
J'ai par exemple un raccourci de mise en veille qui a un fichier "rundll32" situé dans System32 et lorsque je clique sur ce fichier, la mise en veille se fait.

Est-ce le cas avec tout ? Pouvez-vous m'éclairer ?

Merci pour vos réponses,

Snowmann
A voir également:

1 réponse

laurent2m-l Messages postés 1439 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 14 avril 2024 696
Modifié le 3 nov. 2017 à 00:50
Non, il n'y a pas de table des matières sous Windows répertoriant les actions possibles.
Ces actions sont inclues dans des librairies : ce sont les procédures et/ou fonctions auxquelles font appel les programmes exécutables (EXE).

Dans ton exemple, rundll32 est l'exécutable. A la suite, tu désignes la librairie DLL (user32.dll ou powrprof.dll) puis la fonction ou procédure qu'elle contient ; dans ton cas la mise en veille.

Si tu regardes bien Windows ou même les logiciels installés dans "Program Files", tous sont constitués d'exécutables et leurs librairies.
Il est donc quasiment impossible de localiser quelle librairie contient telle ou telle fonction/procédure dont tu aurais besoin. c'est fonction de ce que le développeur de l'application aura défini pour ses besoins. D'ailleurs il créera ses propres librairies ou utilisera des "packs" prédéfinis de son outil de développement (Visual Studio par ex.).
Quant aux raccourcis claviers, ils sont généralement définis dans l'exécutable lui-même par le développeur ou au niveau système de Windows, et non dans une librairie particulière.

Par curiosité ou pour ta culture, tu peux voir ce qu'une DLL a dans ses entrailles : je te conseille l'utilitaire gratuit NirSoft DLL Export Viewer : en indiquant la librairie dans "Load Function from the following DLL file", il t'indiquera la liste des fonctions/procédures qu'elle embarque, mais tu n'auras pas leur rôle, ni la manière de les utiliser.
2
Snowmann Messages postés 227 Date d'inscription samedi 14 octobre 2017 Statut Membre Dernière intervention 6 décembre 2020 2
3 nov. 2017 à 09:47
Merci pour cette super réponse complète !
Je vais donc en rester là pour les fichiers batch et autres d'accessibilité mais juste une dernière question : Le fichier rundll32 qui est donc un exécutable, ai-je juste eu de la chance de trouver uniquement celui-là qui met en veille ou d'autres existent même sans avoir les procédures et/ou fonctions auxquelles font appel les programmes exécutables ?
Par exemple un autre fichier exe qui servirait à redémarrer existe ? Ou celui que j'ai trouvé pour la veille "traînait juste par là" ?

Merci encore,

Snowmann.
0
laurent2m-l Messages postés 1439 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 14 avril 2024 696
3 nov. 2017 à 18:43
Cet exécutable n'est pas le seul fourni par Microsoft pour exécuter directement une fonction de librairie. Il en existe bien d'autres, et pour bien d'autres usages.

Et pour répondre à tes autres questions, lorsqu'on développe une application, on crée des fonctions et procédures à l'intérieur même de l'exécutable. Ce n'est que si ces fonctions ou procédures peuvent servir à d'autres applications, ou si l'exécutable devient trop volumineux à sa création ("compilation"), que l'on choisit plutôt d'exporter tout ce petit monde dans des fichiers à part : les librairies.

Pour l'extinction ou le redémarrage, il y a bien un exécutable tout prêt. Il est suffisamment petit pour qu'il n'y ait pas eu besoin d'exporter les fonctions et procédures. Cet exécutable est "shutdown.exe".
Pour utiliser ses fonctions/procédures, on utilise des arguments : ce sont des commandes qui suivent l'exécutable et d'orienter le choix de fonction/procédure. Généralement ils sont précédées d'un tiret - ou deux tirets -- (plutôt sous GNU/Linux) ou d'un slash / . Viennent ensuite d'autres arguments, des valeurs numériques ou alphanumérique selon ce que doit faire la fonction/procédure.

Tu peux les consulter bien plus facilement qu'avec une librairie : il te suffit d'ouvrir une fenêtre de commande (cmd ou powershell) et de saisir, dans ton cas, shutdown /? pour obtenir toute la liste des possibles et la syntaxe.

Par exemple, pour arrêter ton ordinateur, tu pourras intégrer dans un batch la commande shutdown /s

J'espère avoir été assez clair et pas trop technique.
Amuse-toi bien !
0
Snowmann Messages postés 227 Date d'inscription samedi 14 octobre 2017 Statut Membre Dernière intervention 6 décembre 2020 2
4 nov. 2017 à 09:33
Merci oui c'était vraiment très clair et complet et j'en suis justement arrivé à là parce qu'il n'y avait pas de script shutdown /"x" pour une simple mise en veille et j'ai donc du chercher un peu plus profondément et grâce à ton aide surtout ;)

Merci encore, bonne continuation,

Snowmann.
0