Question
[Résolu] base de registre/menu contextuel
- Granduel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 7 mois #12435
par Granduel
[Résolu] base de registre/menu contextuel a été créé par Granduel
Bonjour,
je souhaiterais ajouter un menu contextuel dans l'explorateur Windows via Powershell (par exemple \"exécuter le script toto\") qui s'affiche pour tous les fichiers. Dans la base de registre, il s'agit de la clé : HKEY_CLASSES_ROOT/*
Je ne sais pas si c'est possible. J'ai trouvé ce lien : fortheloveofcode.wordpress.com/2008/06/0...-hkcr-in-powershell/ . L'auteur donne crée le PSDrive approprié :
[code:1]New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT[/code:1]
Je peux faire :
[code:1]PS HKCR:\> ls .doc
Hive: HKEY_CLASSES_ROOT\.doc
SKC VC Name Property
--- -- ----
0 1 OpenWithProgIDs {OpenOffice.org.Doc}
0 1 PersistentHandler {(default)}
1 0 ShellEx {}
1 0 Word.Document.8 {}
[/code:1]
Mais comment faire pour une clé appelé \"*\" ? J'ai naïvement essayé de l'échapper \"`*\", mais non !
Avez-vous une idée et d'ailleurs est-ce que ça peut marcher ?!
Merci d'avance,
Cordialement,
jgr
[version : Powershell-2.0/win 7]<br><br>Message édité par: jgr, à: 27/07/12 15:03
je souhaiterais ajouter un menu contextuel dans l'explorateur Windows via Powershell (par exemple \"exécuter le script toto\") qui s'affiche pour tous les fichiers. Dans la base de registre, il s'agit de la clé : HKEY_CLASSES_ROOT/*
Je ne sais pas si c'est possible. J'ai trouvé ce lien : fortheloveofcode.wordpress.com/2008/06/0...-hkcr-in-powershell/ . L'auteur donne crée le PSDrive approprié :
[code:1]New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT[/code:1]
Je peux faire :
[code:1]PS HKCR:\> ls .doc
Hive: HKEY_CLASSES_ROOT\.doc
SKC VC Name Property
--- -- ----
0 1 OpenWithProgIDs {OpenOffice.org.Doc}
0 1 PersistentHandler {(default)}
1 0 ShellEx {}
1 0 Word.Document.8 {}
[/code:1]
Mais comment faire pour une clé appelé \"*\" ? J'ai naïvement essayé de l'échapper \"`*\", mais non !
Avez-vous une idée et d'ailleurs est-ce que ça peut marcher ?!
Merci d'avance,
Cordialement,
jgr
[version : Powershell-2.0/win 7]<br><br>Message édité par: jgr, à: 27/07/12 15:03
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 7 mois #12438
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:base de registre/menu contextuel
Bonjour,
Tu n'es pas obligé de monter au préalable un provider sur HKCR. HKCR pointe en réalité sur la ruche [code:1]HKLM\Software\Classes[/code:1].
Quelques solutions :
[code:1]Set-Location -LiteralPath \"HKLM:\Software\Classes\`*\"[/code:1]
[code:1]Set-Location -LiteralPath 'HKLM:\Software\Classes\*'[/code:1]
[code:1]Get-ChildItem -LiteralPath 'HKLM:\Software\Classes\*'[/code:1]
@ +<br><br>Message édité par: Matthew BETTON, à: 27/07/12 10:45
Tu n'es pas obligé de monter au préalable un provider sur HKCR. HKCR pointe en réalité sur la ruche [code:1]HKLM\Software\Classes[/code:1].
Quelques solutions :
[code:1]Set-Location -LiteralPath \"HKLM:\Software\Classes\`*\"[/code:1]
[code:1]Set-Location -LiteralPath 'HKLM:\Software\Classes\*'[/code:1]
[code:1]Get-ChildItem -LiteralPath 'HKLM:\Software\Classes\*'[/code:1]
@ +<br><br>Message édité par: Matthew BETTON, à: 27/07/12 10:45
Connexion ou Créer un compte pour participer à la conversation.
- Granduel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 7 mois #12440
par Granduel
Réponse de Granduel sur le sujet Re:base de registre/menu contextuel
Merci beaucoup.
Ce qui me manquait, c'était \"Literalpath\", le premier argument est Path en fait, doh!
[code:1]
PS D:\temp> cd \"HKLM:\Software\Classes\`*\"
Set-Location : Impossible de définir l'emplacement,
car le chemin d'accès « HKLM:\Software\Classes\* » a
été résolu en plusieurs conteneurs. Vous ne pouvez
affecter à l'emplacement qu'un seul conteneur à la
fois.
Au niveau de ligne : 1 Caractère : 3
+ cd <<<< \"HKLM:\Software\Classes\`*\"
+ CategoryInfo : InvalidArgument: ( [Set-Location], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.SetLocationCommand
PS D:\temp> cd -literalpath \"HKLM:\Software\Classes\`*\"
PS HKLM:\Software\Classes\*>
[/code:1]
Cordialement,
jgr
Ce qui me manquait, c'était \"Literalpath\", le premier argument est Path en fait, doh!
[code:1]
PS D:\temp> cd \"HKLM:\Software\Classes\`*\"
Set-Location : Impossible de définir l'emplacement,
car le chemin d'accès « HKLM:\Software\Classes\* » a
été résolu en plusieurs conteneurs. Vous ne pouvez
affecter à l'emplacement qu'un seul conteneur à la
fois.
Au niveau de ligne : 1 Caractère : 3
+ cd <<<< \"HKLM:\Software\Classes\`*\"
+ CategoryInfo : InvalidArgument: ( [Set-Location], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.SetLocationCommand
PS D:\temp> cd -literalpath \"HKLM:\Software\Classes\`*\"
PS HKLM:\Software\Classes\*>
[/code:1]
Cordialement,
jgr
Connexion ou Créer un compte pour participer à la conversation.
- Granduel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 7 mois #12441
par Granduel
Réponse de Granduel sur le sujet [Résolu] base de registre/menu contextuel
J'ai oublié de noter que le problème était [Résolu].
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] base de registre/menu contextuel