Ces fichiers sont des fichiers d'index que Windows crée la première fois qu'il ouvre un fichier d'aide (extension .hlp) . Si on le supprime, il sera recréé la prochaine fois que l'on ouvrira le fichier d'aide. On peut "préparer" ce travail (qui peut être long et fasitidieux parfois) en forçant la création de ce fichier gid , à l'aide d'une commande simple :
Dans une fenêtre de commande, taper :
winhelp -g nom_du_fichier.hlp
ou, s'il y a plusieurs fichiers HLP a traiter :
for %1 in (*.hlp) do winhelp -g %1
Les fichiers à extension .cab ("cabinet") sont couramment utilisés dans l'installation de logiciel (Microsoft). Ils contiennent, généralement sous forme compressée, un ou plusieurs fichiers. Si la plupart des outils de décompression de fichiers (Winzip p.ex.) savent les ouvrir et extraire leurs composants, ils ne permettent pas d'en créer. Or on peut avoir besoin de le faire (p.ex. pour modifier ponctuellement une distribution de logiciel, en la personnalisant)
Il existe un petit utilitaire pour cela, fourni avec les kit de développement, mais généralement difficile à trouver. Il s'appelle cabarc.exe. C'est un exécutable 32 bits, d'origine Microsoft, en mode console (à lancer dans une fenêtre de commandes)
Téléchargement :
Cliquer ici
pour télécharger cabarc.exe (69 ko)
Un SDK est disponible gratuitement sur le site de Microsoft : cabsdk.exe (463 ko)
Il permet de réaliser des applications créant et ouvrant des fichiers .cab
Il contient également l' outil cabarc.exe
Il est possible de lancer automatiquement un traitement quelconque
lors de l'ouverture d'un disque logique (partition de disque dur) ou plus
généralement lors de l'insertion d'un CDROM.
Pour cela, la racine du disque (ou CD) doit contenir un fichier nommé
obligatoirement autorun.inf, fichier texte contenant un certain nombre de
commandes.
Sa structure est la suivante :
[autorun] |
Les commandes utilisables sont les suivantes:
icon |
Spécifie une icône représentant le disque concerné dans l'explorateur |
|
Syntaxe |
icon=iconfilename[,index] |
|
Paramètres |
|
|
Exemple |
icon=\bin\MonProg.exe,2 3ème icône du fichier monprog.exe du répertoire bin |
|
Remarque | Le fichier icône doit être dans le même répertoire que le fichier spécifié dans la commande open (si elle existe) |
label |
Spécifie une étiquette (texte) représentant le disque concerné dans l'explorateur. | |
Syntaxe |
label=TexteEtiquette |
|
Paramètres |
|
|
Exemple |
label=Disque de boot |
|
Remarque | Si une icône est aussi spécifiée, l'étiquette sera
affichée en dessous. (personnellement, je n'ai pas réussi à faire fonctionner cette option!) |
open |
Spécifie le chemin complet de l'application à lancer quand on ouvre le disque |
|
Syntaxe |
open=[exepath\]exefile [param1 [param2] ...] |
|
Paramètres |
|
|
Exemple |
open=\bin\MonProg.exe |
|
Remarque |
shellexecute | Spécifie une application ou un fichier de données lancé par la fonction système ShellExecuteEx. | |
Syntaxe |
shellexecute=[filepath\]filename[param1, [param2]...] |
|
Paramètres |
|
|
Exemple |
shellexecute=\docs\index.html |
|
Remarque | Cette commande est similaire à
open, mais
elle autorise en plus à lancer un fichier de données associé à une
application.
Cela
signifie que la commande shellexecute est inopérante
sous Windows 95, 98 et NT4. |
shell\commande | Ajoute une commande personnalisée dans le menu contextuel du disque. | |
Syntaxe |
shell\commande\command=fichier.exe shell\commande=item_du_menu |
|
Paramètres |
|
|
Exemple |
shell\commande\command=\bin\MonProg.exe shell\commande=Mon super-&programme |
|
Remarque | La commande shell\command=item_de_menu est facultative |
shell | Spécifie la commande par défaut dans le menu contextuel. | |
Syntaxe |
shell=commande |
|
Paramètres |
|
|
Exemple |
shell\alire\command=notepad doc\lisezmoi.txt shell\alire=&Infos importantes! shell=alire On définit une commande appelée alire, qui
va apparaître dans le menu contextuel comme commande par défaut, sous le nom Infos importantes!, et va provoquer le lancement du bloc-notes
chargé par le fichier \doc\lisezmoi.txt. |
|
Remarque | Quand un utilisateur effectue un click droit sur
l'icône
du disque, un menu contextuel apparaît. Si un fichier autorun.inf existe, la
commande par défaut est tirée de ce fichier s'il contient la commande shell=xxxx.
Cette commande est alors exécutée par un double-clic sur l'icône. |
Exemple récapitulatif
Soit un CDROM contenant :
le fichier autorun.inf sera ainsi constitué :
[autorun] |
On ne peut pas utiliser la commande
open pour ouvrir le
fichier HTML, car cette commande ne concerne que les exécutables. Il faudrait
alors soit incorporer un navigateur autonome dans le CD, soit connaître exactement le navigateur de
l'utilisateur, ce qui est difficilement réalisable.
La commande Shellexecute commence par rechercher dans la BDR l'application associée au document, puis la lance en lui passant le fichier en paramètres (seulement sous Windows ME, 2000 XP, et au delà).
Il existe désormais un éditeur de fichier autorun.inf (sous Windows XP et Windows 2003)
On le trouve dans les excellents "PHM Powertoys" de Philippe MAJERUS (MVP)
http://www.phm.lu/Products/PC/PowerToys/
(c'est un freeware!)
Il arrive fréquemment, après désinstallation d'Access 97, qu'on ne puisse
plus le réinstaller, la procédure d'installation signalant un défaut de
licence.
C'est un bug connu, pour lequel Microsoft a fourni des solutions.
Microsoft avait commencé par écrire l'article n° Q141373 :
"There is no license" Error Starting Microsoft Access http://support.microsoft.com/support/kb/articles/q141/3/73.asp
Mais la manipulation décrite y est tellement longue et complexe que Microsoft a du concevoir un outil nommé AcLicn97.exe et destiné à corriger ce bug !
"The AcLicn97.exe file contains a tool that corrects the problem discussed in this article so that you can run Microsoft Access 97 successfully."
Il est décrit dans l'article n° Q191224 :
"AcLicn97.exe Available for Download on MSL" http://support.microsoft.com/support/kb/articles/q191/2/24.asp
Son téléchargement direct est à l'adresse suivante :
http://download.microsoft.com/download/access97/Update/1.0/W98/EN-US/Aclicn97.exe
ou encore ici
(Ce fichier a une taille de 82 ko)
Voici 2 utilitaires Windows 32 bits en mode console (à insérer dans un fichier batch, et/ou pour lesquels on pourra créer des raccourcis sur le bureau) destinés à éjecter et à fermer un CDROM :
![]() |
|
Ils font tous les deux appel à la librairie winmm.dll, qui gère l'API MCI (Media Control Interface)
La syntaxe en est très simple :
ejectCD <lettre_de_lecteur>
closeCD <lettre_de_lecteur>
(casse indifférente, présence du ":" final facultative)Exemples :
ejectcd X
closeCD k:
S'ils sont appliqués à autre chose que des lecteurs de CDROM (disque dur par exemple), un message d'erreur sera affiché (sans conséquence) :
M:\devstudio\myprojects>closeCD c: erreur MCI_OPEN : Impossible d'exécuter le fichier spécifié sur le périphérique MCI spécifié. Le fichier est peut-être endommagé, de format incorrect ou il n'y a pas de gestionnaire disponible pour ce format.
Quand on veut consulter un fichier texte, on est souvent confronté à
des problèmes de police de caractères suivant que l'affichage a lieu sous
Windows ou sous DOS (ou dans une fenêtre de commandes sous
Windows). Cela concerne essentiellement les caractères diacritiques (lettres
accentuées, cédille, caractères DOS semi graphiques, ...)
Cela est du au codage différent des caractères :
Par exemple, si on récupère le résultat d'une commande "ping" dans un fichier texte, et que l'on affiche ce fichier avec le bloc-notes (notepad), on obtient ceci :
C:>ping www.inria.fr > testping.txt C:>notepad testping.txt
Envoi d'une requˆte 'ping' sur williwaw.inria.fr [138.96.64.15] avec 32 octets de donn‚esÿ:
R‚ponse de 138.96.64.15ÿ: octets=32 temps=62 ms TTL=241
R‚ponse de 138.96.64.15ÿ: octets=32 temps=62 ms TTL=241
R‚ponse de 138.96.64.15ÿ: octets=32 temps=63 ms TTL=241
R‚ponse de 138.96.64.15ÿ: octets=32 temps=63 ms TTL=241
Statistiques Ping pour 138.96.64.15:
Paquetsÿ: envoy‚s = 4, re‡us = 4, perdus = 0 (perte 0%),
Dur‚e approximative des boucles en millisecondesÿ:
minimum = 62ms, maximum = 63ms, moyenne = 62ms
De même, si on imprime dans un fichier texte le contenu d'un écran d'aide de MS DOS (commande "help"), le fichier obtenu est difficilement lisible sous Windows :
Remarques Exemples
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
FIND
Recherche une chaŒne de texte dans un ou plusieurs fichiers.
A la fin de la recherche, FIND affiche les lignes de texte contenant la
chaŒne sp‚cifi‚e.
Syntaxe
FIND [/V] [/C] [/N] [/I] "chaŒne" [[lecteur:][chemin]fichier[...]]
Certains éditeurs de texte sous Windows (UltraEdit
en est un) offrent la possibilité de conversion OEM-ANSI. Mais cela
impose d'ouvrir le fichier, de sélectionner le menu de conversion, puis celui
d'enregistrement sous un autre nom, ...
C'est pourquoi j'ai conçu deux scripts en VBScript qui
effectuent les conversions de fichiers OEM vers ANSI et
inversement.
Ils peuvent de plus accepter les
flux standards stdin et stout en entrée et
sortie, si bien qu'on peut les insérer dans une commande faisant
intervenir des redirections (piping)
Fonction Script (source) Téléchargement Conversion ANSI vers OEM ansi2oem.vbs ansi2oem.vbs Conversion OEM vers ANSI oem2ansi.vbs oem2ansi.vbs
La syntaxe est très simple :
ansi2oem <nom-fichier-source> <nom-fichier-destination>
oem2ansi <nom-fichier-source> <nom-fichier-destination>
Exemple
H:\WSH>oem2ansi c:\dos\helpfind.txt c:\dos\helpfindansi.txt
Conversion terminée
H:\WSH>notepad c:\dos\helpfindansi.txtRemarques Exemples
----------------------------------------------------------------------------
FIND
Recherche une chaîne de texte dans un ou plusieurs fichiers.
A la fin de la recherche, FIND affiche les lignes de texte contenant la
chaîne spécifiée.
Syntaxe
FIND [/V] [/C] [/N] [/I] "chaîne" [[lecteur:][chemin]fichier[...]]
La commande doit obligatoirement et explicitement faire intervenir le moteur de script CSCRIPT.EXE
La syntaxe est donc de la forme (exemples) :
applicationOEM | cscript oem2ansi.vbs > fichieransi.txt
applicationANSI | cscript ansi2oem.vbs | applicationOEM
Exemple :
H:\WSH>ping www.inria.txt | cscript oem2ansi.vbs > testping.txt H:\WSH>notepad testping.txt
Envoi d'une requête 'ping' sur williwaw.inria.fr [138.96.64.15] avec 32 octets de données :
Réponse de 138.96.64.15 : octets=32 temps=78 ms TTL=241
Réponse de 138.96.64.15 : octets=32 temps=62 ms TTL=241
Réponse de 138.96.64.15 : octets=32 temps=63 ms TTL=241
Réponse de 138.96.64.15 : octets=32 temps=63 ms TTL=241
Statistiques Ping pour 138.96.64.15:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
minimum = 62ms, maximum = 78ms, moyenne = 66ms
Si on oublie "cscript" dans la
commande, cela va générer une erreur :
H:\WSH>ping www.inria.fr | oem2ansi.vbs > testping.txt
H:\WSH\oem2ansi.vbs(78, 1) (null): Descripteur non valide
On peut avoir besoin parfois de lancer immédiatement l'économiseur d'écran, par exemple pour verrouiller l'ordinateur (si le mot de passe a été activé)
Une solution simple serait de créer un raccourci sur le bureau d'un fichier économiseur d'écran (extension .scr).
Le problème est que cette méthode est très imparfaite :
Si on a installé Microsoft Office et sa barre d'outils, on
dispose d'un bouton permettant de lancer l'économiseur, avec saisie
obligatoire du mot de passe au retour :
Étant donné qu'on ne dispose pas toujours de MS Office, j'ai conçu un utilitaire (exécutable) qui remplit le même rôle. Il a été écrit en Delphi, et son principe est basé sur l'envoi d'un message Windows WM_SYSCOMMAND, avec le paramètre SC_SCREENSAVE .
Il fonctionne sous toute version de Windows (9X/ME, NT/W2K/XP). Il se
présente sous la forme d'un exécutable unique (setscr.exe) ne nécessitant
aucune installation. Il peut être placé dans n'importe quel dossier.
Son usage est entièrement gratuit.
![]() |
setscr.zip (198 ko) |
Après téléchargement et décompression, il suffit de placer un
raccourci de cet exécutable sur le bureau (par exemple) :
Sous Windows NT/2000/XP/2003, chaque processus possède une priorité d'exécution que l'on peut afficher ou définir dans le gestionnaire de tâches :
![]() |
La plupart des applications possèdent une priorité
Normale Le Gestionnaire de tâches, par contre, a une priorité Haute Un économiseur d'écran a une priorité Basse Il existe une priorité maximale, dite Temps réel, qui est exceptionnelle, et peut entraîner des problèmes au niveau de la souris (bloquée) et du fonctionnement du cache disque. A partir de Windows 2000, on rencontre 2 niveaux intermédiaires
supplémentaires : Supérieure à la normale et Inférieure à la
normale. |
Si on exécute n'importe quelle application (sauf le gestionnaire de tâches ou un économiseur d'écran) depuis l'explorateur, le menu démarrer/exécuter ou une fenêtre de commandes, on ne peut pas définir ce niveau de priorité, qui sera fixé à "Normale".
Or on peut avoir parfois besoin d'exécuter des programmes nécessitant une priorité élevée (scrutation de processus, analyseur de modifications dans des fichiers, ..), ou au contraire basse (modification automatique et périodique de l'interface, ..)
J'ai conçu un utilitaire (écrit en
Delphi), utilisable en ligne de commandes (depuis un script .bat ou
.cmd par exemple), qui permet d'exécuter une application quelconque en
définissant le niveau de priorité d'exécution de l'application.
Si on le lance sans paramètres, une aide s'affiche :
![]() |
|
Il se présente sous la forme d'un exécutable unique (xrun.exe) ne nécessitant
aucune installation. Il peut être placé dans n'importe quel dossier,
mais il peut s'avérer pratique de le placer dans le dossier %systemroot%
ou %systemroot%\system32.
Son usage est entièrement gratuit.
![]() |
xrun.zip (209 ko) |