[shellexec] Vérifier l'association extension/option Print

Bonjour,

petite question technique sous Windows (surtout windows 10 et 11) :
Je suis sur un ERP dans un langage qui me permet de faire un « shellexec » (commande CMD) sur le poste du client.
Je souhaite imprimer des documents depuis cet ERP. Je peux donc appeler shellexec avec l’option « print », équivalent à l’option « Imprimer » sur le menu contextuel :

image

MAIS je souhaiterai limiter cette option aux fichiers sur windows qui ont effectivement cette option dans le menu contextuel, car toutes les extensions ne sont pas configurées pour.

J’ai trouvé un screenshot où je crois que ça se configure(ait) (ci-dessous), mais moi je cherche un moyen d’avoir cette info en ligne de commande (cmd, pas powershell !)

Résumé

image

J’ai trouvé une clé de regedit qui semble correspondre HKEY_LOCAL_MACHINE\SOFTWARE\Classes\txtfile\shell\print\command

le problème c’est que txtfile, c’est pas l’extension du fichier :frowning: .

Alors : est-ce qu’il y a un autre moyen de voir si cette association extenstion/option print existe quelque part ? Ou comment faire le lien entre l’extension .txt et ce type txtfile (et qui fonctionne pour les autres extensions auss) ?
Merci

Alors tu peux taper

assoc .txt

et ca va te donner le type.
Une autre commande utile c’est:

ftype txtfile

qui te montre avec quoi ça s’ouvre

Edit: Et si tu dois vraiment faire des trucs dans la base de registres, tu peux aussi vérifier le type ici par exemple: Computer\HKEY_CLASSES_ROOT\.txt

1 « J'aime »

Ah super merci !
assoc c’est un peu peu plus simple que lire directement le registre (HKEY_CLASSES_ROOT.ext)
Ensuite j’ai donc juste à lirela clé shell\Print dans le type !

Par contre dernière question, j’ai le type à la fois dans Computer\HKEY_CLASSES_ROOT\ et dans Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\

Est-ce qu’il vaut mieux prendre l’une ou l’autre ou c’est identique ?

HKEY_CLASSES_ROOT semble être un merge des settings machine + user:

2 « J'aime »

Ok merci beaucoup ! On peut fermer :slight_smile: