[..] Rechercher dans une liste

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
dakh
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 18 janv. 2016 18:02
Status : Hors ligne

[..] Rechercher dans une liste

#1

Message 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
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2111
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Rechercher dans une liste

#2

Message 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)
 
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
dakh
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 18 janv. 2016 18:02
Status : Hors ligne

Re: [..] Rechercher dans une liste

#3

Message 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... :cry:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2111
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Rechercher dans une liste

#4

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
dakh
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 18 janv. 2016 18:02
Status : Hors ligne

Re: [..] Rechercher dans une liste

#5

Message 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
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Rechercher dans une liste

#6

Message 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).
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
dakh
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 18 janv. 2016 18:02
Status : Hors ligne

Re: [..] Rechercher dans une liste

#7

Message 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.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Rechercher dans une liste

#8

Message par walkson »

Bonjour,
Et ça ? http://www.autoitscript.fr/forum/viewto ... =21&t=1083
Ça ne ferait pas l'affaire...
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
dakh
Niveau 1
Niveau 1
Messages : 5
Enregistré le : lun. 18 janv. 2016 18:02
Status : Hors ligne

Re: [..] Rechercher dans une liste

#9

Message par dakh »

Bonjour,

Merci je vais regarder ça et je reviendrai vers vous.
Répondre