[R] Lister cibles raccourcis du bureau

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

[R] Lister cibles raccourcis du bureau

#1

Message par cbourree »

Bonjour,
je croie avoir tout tester pour régler ce problème http://autoitscript.fr/forum/viewtopic.php?f=3&t=11770 mais je ne sais vraiment pas comment faire alors j'ai décider de contourner le problème !!! Puisqu’il est impossible de lancer mon programme au démarrage je vais forcer l'utilisateur à lancer mon programme !!! Fin bref si j'ouvre un autre poste c'est bien que mon autre problème à je croie jamais été abordé sur le forum ... Je voudrais donc faire un petit programme qui commence par récupérer la listes des raccourcis présent sur le bureau ainsi que le raccourcis vers lequel il pointe (sans utiliser déplacer la souris) ... Et j'avoue que je sèche aussi totalement ...

Merci encore d'avance ;)
Modifié en dernier par cbourree le jeu. 14 nov. 2013 12:37, modifié 4 fois.
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [R]Lister cibles raccourcis du bureau

#2

Message par cbourree »

J'ai trouver la solution :)

Code : Tout sélectionner

#include<Array.au3>
#include"_FileListToArrayEx.au3"
Global $MAX_PROPERTIES = 500 ; Maximum par test = 40

$ar_Array = _FileListToArrayEx ("C:\Users\François\Desktop\", "*.lnk", 1, 2)
Dim $fichier[UBound($ar_Array)][2]
$l = 0
For $i = 1 To UBound($ar_Array) - 1
    $cible = getFichierPropriete($ar_Array[$i], "Cible du lien")
    If $cible <> "" And StringInStr($cible, ".exe") Then
        $fichier[$l][0] = $ar_Array[$i]
        $fichier[$l][1] = $cible
        $l+=1
    EndIf
Next
_ArrayDisplay($fichier, "Liste fichier")



Func getFichierPropriete($chemin, $propriete)
    If Not FileExists($chemin) Then
        SetError(1)
    ElseIf IsInt($propriete) And Int($propriete) <= $MAX_PROPERTIES Then
        SetError(2)
    Else
        Local $shell = ObjCreate("shell.application"), $lastSlash = StringInStr($chemin, "\", 0, -1)
        Local $repertoire = $shell.NameSpace(StringLeft($chemin, $lastSlash))
        Local $fichier = $repertoire.Parsename(StringTrimLeft($chemin, $lastSlash))
        If IsInt($propriete) Then
            SetExtended($propriete)
            Return $repertoire.GetDetailsOf($fichier, $propriete)
        Else
            For $i = 0 to $MAX_PROPERTIES
                If $propriete <> "" And $repertoire.GetDetailsOf($repertoire.Items, $i) = $propriete Then
                    SetExtended($i)
                    Return $repertoire.GetDetailsOf($fichier, $i)
                EndIf
            Next
            SetError(3)
        EndIf
    EndIf
    Return ""
EndFunc
 
Ce script me retourne un tableau $fichier avec en [$i][0] le nom et en [$i][1] la cible :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R]Lister cibles raccourcis du bureau

#3

Message par Tlem »

cbourree a écrit :J'ai trouver la solution
En 1H30, c'est cool, mais vous auriez du faire votre recherche avant de poser la question !!!
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [R] Lister cibles raccourcis du bureau

#4

Message par cbourree »

"En 1h30" Après que j'ai poster !! J'avais déjà trouvé cette fonction mais elle m'affichait les 64 premières propriétés et donc oui il m'a fallut 1 heure 30 pour me rendre compte qu'on pouvais modifier le nombre de propriétés à afficher ... Alors que bon suffit que quelqu'un passe là au bon moment et c'est fait en 5 mins ... Et aussi pour les futures personnes qui auront le même problème que moi ...
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#5

Message par cbourree »

Voilà même si j'ai trouvé une solution pour contourner le problème, j'aimerai savoir pourquoi ma super fonction getFichierPropriete ne me retourne pas l'extension du fichier cible quand je n'ai pas les droits admins ?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R/..] Lister cibles raccourcis du bureau

#6

Message par jguinch »

Le code que tu as posté n'est pas fonctionnel, comment veux-tu qu'on t'aide ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#7

Message par lesolutionneur »

C'est simple, c'est parce que les 3/4 des raccourcis sont dans le dossier bureau partagé entre les différents utilisateurs et qui par conséquent ne sont pas modifiables par un utilisateur normal !

Edit : ah non c'est pour la lecture, mais c'est normal qu'ils ne soient pas affichés étant donnée qu'ils ne sont pas présents dans ton bureau mais dans le bureau partagé (de mémoire C:\Documents and Settings\All Users\Desktop sous XP et C:\Users\Public\Desktop sous Seven et Eight)

Edit 2 : désolé j'ai mal lu ta question je crois
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#8

Message par cbourree »

@lesolutionieur Le problème n'est pas la récupération des raccourcis ;) Mais uniquement de leur cible. Voici donc mon script (fonctionne uniquement chez moi)
► Afficher le texte
Et maintenant au lycée quand avec cette fonction je met comme $MAX_PROPERTIES 64 ou 200 il ne m'affiche que les 40 premières

Code : Tout sélectionner

Func getFichierListeProprietes($chemin)
    Local $resultat[1][3] = [[0,"",""]]
    $resultat[0][0] = 0
    If FileExists($chemin) Then
        Local $shell = ObjCreate("shell.application"), $lastSlash = StringInStr($chemin, "\", 0, -1)
        Local $repertoire = $shell.NameSpace(StringLeft($chemin, $lastSlash))
        Local $fichier = $repertoire.Parsename(StringTrimLeft($chemin, $lastSlash))
        For $i = 0 to $MAX_PROPERTIES
            If $repertoire.GetDetailsOf($repertoire.Items, $i) <> "" Then
                ReDim $resultat[UBound($resultat)+1][3]
                $resultat[0][0] = UBound($resultat)-1
                $resultat[$resultat[0][0]][0] = $repertoire.GetDetailsOf($repertoire.Items, $i)
                $resultat[$resultat[0][0]][1] = $i
                $resultat[$resultat[0][0]][2] = $repertoire.GetDetailsOf($fichier, $i)
            EndIf
        Next
    EndIf
    Return $resultat
EndFunc

Merci d'avance
Fichiers joints
premier_lancement.au3
(9.76 Kio) Téléchargé 191 fois
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#9

Message par jguinch »

Tu es parti d'un script VBScript ? Ca y ressemble ....

Je ne sais pas ce qui ne va pas dans ton script, mais je peux te proposer un code (peut-être) plus simple :
► Afficher le texte_ListShorCuts
Modifié en dernier par jguinch le ven. 01 nov. 2013 21:06, modifié 1 fois.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#10

Message par cbourree »

Merci beaucoup ... <3 Il faut vrmt que j'apprenne à faire une recherche
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#11

Message par jguinch »

-> Un petit [R] si c'est résolu :wink:
Effectivement, il faut faire des recherches (bien que tu n'aurais pas trouvé cette fonction puisque je viens de la poster), mais il faut aussi et surtout lire la doc, voir un peu toutes les fonctions, à quoi elles servent et tester les exemples.
Ici, tu avais juste besoin de savoir qu'il y avait une fonction toute faite (FileGetShortcut) qui permet d'obtenir les propriétés d'un raccourci.
A+
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#12

Message par cbourree »

Un petit [r] quand ça fonctionnera ...
Encore une fois cette fonction fonctionne parfaitement chez moi mais pas au lycée en effet votre fonction me retourne 0 ... alors que _FileListToArrayEx(@DesktopCommonDir & "\", "*.lnk", 1, 2) (dans le code fourni précédemment) qui utilise aussi FileFindFirstFile fonctionne. Je suis certain de ne pas avoir fait d'erreur dans le chemin ... Bon en adaptant votre fonction avec _filelisttoarrayex ça devrait fonctionner ... Du moins je l’espère ...
Merci encore
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#13

Message par jguinch »

Tu n'aurais pas fais _ListShorCuts(@DesktopCommonDir & "\", "*.lnk") au lieu de _ListShorCuts(@DesktopCommonDir) au lycée ?
Une petite confusion peut-être...?
J'utilise ça sur 3000 postes, ça marche bien.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#14

Message par mikell »

Ben maintenant avec mon OS préhistorique ça fait 3001 :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#15

Message par jguinch »

merci mikell pour le retour.
Sur les 3000, j'en ai quand même la moitié en XP, faut pas croire :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..] Lister cibles raccourcis du bureau

#16

Message par cbourree »

Presque, je m'était contenter d'un copier coller de votre code pour tester la fonction car j'avais un long TP devant moi ... Et donc utiliser @DesktopDir à la place de @DesktopCommonDir.
J'avais oublier que les deux existaient :'(
Merci encore ;)

edit : ça fonctionne :)
Répondre