FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Liste des icônes/raccourcis du bureau Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Liste des icônes/raccourcis du bureau Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Liste des icônes/raccourcis du bureau Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Liste des icônes/raccourcis du bureau Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Liste des icônes/raccourcis du bureau Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Liste des icônes/raccourcis du bureau Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Liste des icônes/raccourcis du bureau Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Liste des icônes/raccourcis du bureau Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Liste des icônes/raccourcis du bureau Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Liste des icônes/raccourcis du bureau Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Liste des icônes/raccourcis du bureau Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Liste des icônes/raccourcis du bureau Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Liste des icônes/raccourcis du bureau Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Liste des icônes/raccourcis du bureau Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Liste des icônes/raccourcis du bureau Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-47%
Le deal à ne pas rater :
SAMSUNG T7 Shield Bleu – SSD Externe 1 To à 89,99€
89.99 € 169.99 €
Voir le deal

 

 Liste des icônes/raccourcis du bureau

Aller en bas 
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Liste des icônes/raccourcis du bureau Empty
MessageSujet: Liste des icônes/raccourcis du bureau   Liste des icônes/raccourcis du bureau EmptyMer 17 Juil 2019 - 23:12

La liste des raccourcis se trouve dans:
C:\Users\%USERNAME%\Desktop\"
Chacun étant représenté par un fichier .lnk qui contient ses paramètres.

On ne peut pas lire directement un fichier .lnk. L'astuce consiste à le renommer avec un autre suffixe le temps de l'exploiter, puis de lui redonner son suffixe .lnk après l'opération.
Ou plus simple, ce que je fais ici, le recopier ailleurs avec un autre suffixe (ici .lne) et exploiter la copie, il y a moins de risques.

Le programme affiche à gauche la liste des fichiers lnk, et à droite le dump du fichier sélectionné, avec possibilité de l'imprimer.
PS en fait deux options: soit le dump brut du fichier sélectionné (option 1), soit le dump détaillé du même fichier (option 2), ces options sont en dur dans le programme (lignes 27/28).
L'option 2 est sélectionnée a priori.

Quant à la structure de ces fichiers je n'ai pas réussi à trouver des infos très convaincantes, c'est plutôt mystérieux. Mais il doit y avoir le lien vers l'exécutable, les paramètres de l'icône et sa position, etc...
Code:
' Dump de la liste des fichiers contenant les paramètres des icônes du bureau
DIM rtm$,fd$,f1$,a$,b$,c$,d$,dp$,i%,j%,k%,rac$,q$,option%,ad%,nb%,sz%,lsi%
DIM adli%
LABEL Qt,Dplnk,Dpstr,Dppar,Traduc,Impr

q$ = CHR$(34)
rtm$ = "Z:\": ' répertoire des fichiers temporaires (à ajuster)

fd$ = rtm$+"Dumpt.txt": ' dump total
rac$ = "C:\Users\%USERNAME%\Desktop\": ' liste des raccourcis du bureau (.lnk)
option% = 1: ' dump total du fichier cliqué
option% = 2: ' analyse du contenu du fichier cliqué

WIDTH 0,600: HEIGHT 0,SCREEN_Y-30: LEFT 0,205: BORDER_SMALL 0: ON_CLOSE 0,Qt
  COLOR 0,180,255,255: FONT_SIZE 0,10: FONT_BOLD 0
CAPTION 0,rac$
LIST 1: TOP 1,25: WIDTH 1,WIDTH(0)-20: HEIGHT 1,HEIGHT(0)-60
  FONT_NAME 1,"Lucida Console": FONT_SIZE 1,10: FONT_BOLD_OFF 1
ALPHA 4: TOP 4,3: LEFT 4,10
BUTTON 5: LEFT 5,200: WIDTH 5,150: CAPTION 5,"Imprimer la page"
  ON_CLICK 5,Impr
DLIST 10
FORM 20: TOP 20,0: LEFT 20,0: WIDTH 20,200: HEIGHT 20,SCREEN_Y-30
  BORDER_SMALL 20: CAPTION 20,"Liste des raccourcis bureau"
LIST 21: PARENT 21,20: FULL_SPACE 21: ON_CLICK 21,Dplnk
EXECUTE_WAIT "cmd.exe|/c DIR /B "+rac$+"*.lnk | clip"
CLIPBOARD_PASTE 21
option% = 1: ' dump total du fichier cliqué
option% = 2: HIDE 5: ' analyse du contenu du fichier cliqué
END
' ==============================================================================
Qt:
  IF FILE_EXISTS(fd$) = 1 THEN FILE_DELETE fd$
TERMINATE
' ==============================================================================
Dplnk:
  EXECUTE_WAIT "cmd.exe|/c DEL /Q "+rtm$+"*.lne"
  a$ = ITEM_INDEX$(21): b$ = LEFT$(a$,LEN(a$)-4)
  f1$ = rtm$+b$+".lne": ' provisoire
  EXECUTE_WAIT "cmd.exe|/c COPY "+q$+rac$+a$+q$+" "+q$+f1$+q$
  FILEBIN_OPEN_READ 1,q$+f1$+q$: sz% = FILEBIN_SIZE(1): FILEBIN_POSITION 1,76
    lsi% = FILEBIN_READ(1)+256*FILEBIN_READ(1): ' décalage Shell Item id List
  FILEBIN_CLOSE 1
  CAPTION 4,a$+" ("+STR$(sz%)+" = "+HEX$(sz%)+"h octets)."
  CLEAR 1
  IF option% = 1 
      FileDump(f1$,fd$,16)
      FILE_LOAD 1,fd$
      FILE_DELETE f1$
  ELSE
      GOSUB Dpstr: ' Fichier binaire -> hexa
      ITEM_ADD 1,"==== Header : ===="
      ad% = 0: nb% = 4: GOSUB Dppar: ' = raccourci (toujours 4C000000)
      ad% = ad%+nb%: nb% = 16: GOSUB Dppar: ' Guid
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' Flag
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' autre flag
      ad% = ad%+nb%: nb% = 8: GOSUB Dppar: ' date de création
      ad% = ad%+nb%: nb% = 8: GOSUB Dppar: ' date de modification
      ad% = ad%+nb%: nb% = 8: GOSUB Dppar: ' date dernier accès
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' taille du fichier cible
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' numéro de l'icône
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' type affichage del a fenêtre
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' Hot Key
      ad% = ad%+nb%: nb% = 8: GOSUB Dppar: ' Toujours 0
      ITEM_ADD 1,"==== Shell Item Id List : ====" 
      ad% = ad%+nb%: nb% = 2+lsi%: GOSUB Dppar: ' ?
      ITEM_ADD 1,"==== File Location Infos : ===="
      ad% = ad%+nb%: adli% = ad%: nb% = 4: GOSUB Dppar: ' taille
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' toujours 1C
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' local ou partage réseau
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' offset table volume local
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' offset chemin de base
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' offset table volume réseau
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' offset chemin final
      ITEM_ADD 1,"==== Table Volume Local (et la suite...) : ===="
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' taille de la structure
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' type volume (=3 HD)
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' N° de série du volume
      ad% = ad%+nb%: nb% = 4: GOSUB Dppar: ' Toujours 10000000
      ad% = ad%+nb%: nb% = sz%-ad%: GOSUB Dppar: ' Label volume... et la suite... 
 ' Table volume réseau
      ' ITEM_ADD 1,"    Table Volume Réseau :"
      ' ad% = ad%+nb%: nb% = sz%-ad%: GOSUB Dppar                         
  END_IF
RETURN
' ==============================================================================
Impr:
  IF MESSAGE_CONFIRMATION_YES_NO("Imprimante prête ?") = 1
      EXECUTE "Cmd.exe|/c start /min Notepad.exe /p "+CHR$(34)+fd$+CHR$(34)
  END_IF
RETURN
' ==============================================================================
Dpstr:
  ' Dump hexa de la totalité du fichier binaire f$ dans la chaîne dp$
  FILEBIN_OPEN_READ 1,f1$: i% = FILEBIN_SIZE(1)
      FILEBIN_POSITION 1,0: FILEBIN_HEXA_READ 1,i%,dp$
  FILEBIN_CLOSE 1
RETURN 
' ==============================================================================
Dppar:
  ' Dump de nb% octets (image dump = dp$) à partir de l'adresse ad%
  IF (ad%+nb%) > LEN(dp$)/2 THEN nb% = LEN(dp$)/2-ad%
  WHILE nb% > 16
      j% = 16
      a$ = RIGHT$("000"+HEX$(ad%),3)+": "
      b$ = MID$(dp$,2*ad%+1,2*j%): GOSUB Traduc
      ITEM_ADD 1,a$+b$: nb% = nb%-16: ad% = ad%+16
  END_WHILE
  a$ = RIGHT$("000"+HEX$(ad%),3)+": "
  b$ = MID$(dp$,2*ad%+1,2*nb%): GOSUB Traduc
  ITEM_ADD 1,a$+b$ 
RETURN
' ==============================================================================
Traduc:
  IF LEN(b$) > 2
      FOR i% = LEN(b$)-2 TO 2 STEP -2
          b$ = LEFT$(b$,i%)+" "+RIGHT_POS$(b$,i%+1)
      NEXT i%
  END_IF
  c$ = ""
  FOR i% = 1 TO LEN(b$) STEP 3
      j% = HEX(MID$(b$,i%,2))
      IF j% > 31
          c$ = c$+CHR$(j%)
      ELSE
          c$ = c$+"."
      END_IF
  NEXT i%
  b$ = b$+STRING$(49-LEN(b$)," ")+c$
RETURN
' ==============================================================================
SUB FileDump(f$,fd$,nc%)
' Dump de f$ dans le fichier texte fd$, nc% = 8, 16, 24 ou 32 colonnes
' (~ 12s pour 50 k octets)
DIM_LOCAL bf$,c$,dp$,tr$,sz%,i%,j%,k%
IF nc%<>8 AND nc%<>16 AND nc%<>24 AND nc%<>32 THEN nc% = 16
FILEBIN_OPEN_READ 9,f$: sz% = FILEBIN_SIZE(9): bf$ = ""
i% = INT(sz%/2000): j% = sz%-i%*2000
IF i%>0 THEN FOR k% = 1 TO i%: bf$=bf$+FILEBIN_HEXA_READ$(9,2000): NEXT k%
IF j%>0 THEN bf$ = bf$+FILEBIN_HEXA_READ$(9,j%): ' reste
FILEBIN_CLOSE 9
FILE_OPEN_WRITE 9,fd$
FOR i% = 1 TO LEN(bf$) STEP nc%*2
    dp$ = RIGHT$("0000"+HEX$((i%-1)/2),5)+": ": tr$ = ""
    FOR j% = i% TO i%+2*nc%-2 STEP 2
        IF j% > LEN(bf$) THEN EXIT_FOR
        c$ = MID$(bf$,j%,2): k% = HEX(c$)
        IF k% > 31
            tr$ = tr$ + CHR$(k%)
        ELSE
            tr$ = tr$ + "."
        END_IF
        dp$ = dp$+c$+" "
    NEXT j%
    FILE_WRITELN 9,dp$+" "+tr$
NEXT i%
FILE_CLOSE 9
END_SUB
' ==============================================================================

Concernant la structure des éléments, voici ce que j'ai pu trouver, mais c'est plutôt flou !
Spoiler:

PS je suis sous W7, je n'ai pas essayé avec W10.

Edit: suite à l'enthousiasme généré par ce programme, j'ai essayé de détailler les infos pour chaque élément, en fonction du peu d'informations que je possède (voir le spoiler).

Et à quoi ça sert tout ça ? ... a priori, à rien ! c'est juste de la curiosité pure.
Revenir en haut Aller en bas
 
Liste des icônes/raccourcis du bureau
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Aide Panoramic sur le bureau
» Déterminer le HANDLE du Bureau
» Un Post-it sur le bureau (nouveau source)
» Un Post-it sur le bureau
» Grille sur le bureau

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: