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
» Bataille terrestre
Liste des icônes/raccourcis du bureau Emptypar Marc Hier à 16:20

» item_index
Liste des icônes/raccourcis du bureau Emptypar Marc Hier à 16:13

» SineCube
Liste des icônes/raccourcis du bureau Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Liste des icônes/raccourcis du bureau Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Liste des icônes/raccourcis du bureau Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Liste des icônes/raccourcis du bureau Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Liste des icônes/raccourcis du bureau Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Liste des icônes/raccourcis du bureau Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Liste des icônes/raccourcis du bureau Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Liste des icônes/raccourcis du bureau Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Liste des icônes/raccourcis du bureau Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Liste des icônes/raccourcis du bureau Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Liste des icônes/raccourcis du bureau Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Liste des icônes/raccourcis du bureau Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Liste des icônes/raccourcis du bureau Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

 

 Liste des icônes/raccourcis du bureau

Aller en bas 
AuteurMessage
JL35




Nombre de messages : 7095
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
-
» Déterminer le HANDLE du Bureau
» Aide Panoramic sur le bureau
» Un Post-it sur le bureau (nouveau source)
» Grille sur le bureau
» Un Post-it 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: