Page 1 sur 1
[..] Rechercher dans une liste
Posté : mar. 19 janv. 2016 15:45
par dakh
Bonjour à tous,
Après de nombreuses recherches je viens m'inscrire pour échanger sur mon petit soucis.
Je m'explique:
Quand j'ouvre la panneau de configuration, programmes par défaut
Code : Tout sélectionner
RunWait(@ComSpec & " /c control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc", "C:\windows\system32")
Je désire trouver un chaîne de caractère dans la liste des extensions (Exemple: .zip). Si elle y est je continue sinon j'installe l'outil adéquat. J'ai pas mal de difficulté à trouver la fonction qui me permettra d'effectuer cette recherche....Le pire c'est que cette liste plus fluctuer en termes de longueur du coup je n'ai pas le choix.
Cordialement,
Dakh
Re: [..] Rechercher dans une liste
Posté : mar. 19 janv. 2016 16:24
par TommyDDR
Vous pouvez le voir dans le registre :
Code : Tout sélectionner
Global $ext = InputBox("Extension", "Entrez l'extension à vérifier")
If(StringLen($ext) == 0) Then Exit
Global $prog = getFileAssoc($ext)
Global $txt = $ext
If(StringLen($prog) > 0) Then
$txt &= " est associé à " & $prog
Else
$txt &= " n'est pas associé"
EndIf
MsgBox(0, "", $txt)
Func getFileAssoc($ext)
If(Not(StringLeft($ext, 1) == ".")) Then $ext = "." & $ext
Local $type = RegRead("HKCR\" & $ext, "")
Local $retour = RegRead("HKCR\" & $type & "\shell\open\command", "")
Return $retour
EndFunc
EDIT :
Et avec un peu de recherche :
Code : Tout sélectionner
#include <APIRegConstants.au3>
#include <WinAPIReg.au3>
Global $ext = InputBox("Extension", "Entrez l'extension à vérifier")
If(StringLen($ext) == 0) Then Exit
If(Not(StringLeft($ext, 1) == ".")) Then $ext = "." & $ext
ConsoleWrite("Association : " & _WinAPI_AssocQueryString($ext, $ASSOCSTR_EXECUTABLE, $ASSOCF_INIT_IGNOREUNKNOWN) & @CRLF)
Re: [..] Rechercher dans une liste
Posté : mar. 19 janv. 2016 16:30
par dakh
Bonjour,
Merci pour l'idée.
Mais est il possible de parcourir la liste que je vous ai énoncé au-dessus?
Car en fait l’association par défaut de certaines extensions sous Windows 8.1 n'est pas bien effectué par certaines application et l'action manuel d'aller dans le panneau de configuration et simuler l'action "clic bouton" d'association d'extension est la seul solution que j'ai trouvé aujourd'hui. la modification du registre ne suffit pas...

Re: [..] Rechercher dans une liste
Posté : mar. 19 janv. 2016 16:40
par TommyDDR
"Si elle y est je continue sinon j'installe l'outil adéquat."
Je ne vois pas le problème, si la fonction retourne quelque chose, vous continuez, sinon vous lancez l'installation.
Re: [..] Rechercher dans une liste
Posté : mar. 19 janv. 2016 16:46
par dakh
oui ça c'est OK.
Mais une fois lappli installé l'extension des fichiers n'est pas correctement effectué et j'aurai voulu ajouter l'action de recherche dans le panneau de configuration / Programmes par défaut / Définir les Associations: et faire tout bêtement un "Entrer" et associer l'extension aux applications que me propose Windows.
je sais pas si j'arrive à être clair
Re: [..] Rechercher dans une liste
Posté : mar. 19 janv. 2016 21:53
par jguinch
Si j'ai bien compris, tu veux ajouter une association de fichiers : il faut passer par la base de registre, sinon ça va être casse-gueule (l'interface graphique est différente suivant les OS).
Re: [..] Rechercher dans une liste
Posté : mer. 20 janv. 2016 09:42
par dakh
Oui c'est pour ça que je butte... c'est bien casse gueule et via le registre je ne touche pas assez de chose a priori pour que ça resolve mon problème. On peut mettre ce sujet comme résolu. je vais continuer à tâtonner.
Re: [..] Rechercher dans une liste
Posté : mer. 20 janv. 2016 16:49
par walkson
Re: [..] Rechercher dans une liste
Posté : mer. 20 janv. 2016 17:43
par dakh
Bonjour,
Merci je vais regarder ça et je reviendrai vers vous.