Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| lire depuis un raccourcis. | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: lire depuis un raccourcis. Sam 2 Juin 2012 - 14:05 | |
| Bonjour, Est-ce que l'un de vous sais comment connaitre le chemin d'un raccourcis, puis y charger du texte dans un memo, ou une image dans un picture? Y-at-il une DLL ou autre?
merci d'avance |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 9:09 | |
| Je suis pas sur d'avoir compris la demande, mais je tente une réponse.
(Sous XP) Clic-droit sur le raccourci, puis propriétés et la cible est prête a copier. Après ???? | |
| | | Invité Invité
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 12:06 | |
| Bonjour Jean-Claude, Non, ce n'est pas cela. J'aurais voulu faire ceci: file_load N,fichier$ en sachant que fichier$ est un raccourcis du nom. En réalité, j'ai trouvé le moyen de me sortir de cela. Voila ce que je suis en train de faire: Voir le Fichier : ESPACE_cosmos70.exeJ'ai changé mon idée, et les essais mon montré que ce n'était plus nécessaire le chargement depuis un raccourcis. Cela dit, il serait intéressant de pouvoir le faire. |
| | | ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 12:23 | |
| Bonjour cosmos70, j'ai lu dans ton fichier Espace_cosmos.exe qu'il t'était difficile de trouver un hébergeur gratuit sans pub. Je te donne une adresse d'hébergement suisse totalement gratuit, d'usage illimité en temps et sans pub. L'hébergeur accepte même d'ajouter des fonctions PHP à ta demande. http://www.c-webhosting.org/Tu ne seras pas déçu. | |
| | | Invité Invité
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 12:37 | |
| Je te remercie Ambroise et bonjour, Mais moi, cela me suffit. C'est une solution de remplacement qui me convient très bien, et de plus très facile à faire.
Si mes idées étaient toutes suivies, et que cela puisse être référencé par le moteur de Google, je pourrais aller voir, et faire un site. Mais cela ne servira que pour une ou deux personnes de notre communauté.
Par contre ton lien pour faire un site, pourrait être utile pour quelqu'un d'autre de ce forum. Mon but n'est pas de me faire un nom, mais je voulais avoir un outil simple, pour retrouver des idées qui m'ont intéressée, sans avoir à faire des recherches fastidieuses sur le forum. Ce qui m'intéresse, je le prends, et je le rajoute. Cela dit, j'ai commencé hier soir, et je n'ai pas fini la mise au point pour faciliter le remplissage d'info ou de mémo. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 13:44 | |
| J'ai trouvé un moyen de faire cela en Delphi, et je pourrais donc faire une DLL. Mais j'ai trouvé mieux: je peux le faire en Panoramic ! Le programme qui suit, ouvre des raccourcis et trouve le fichier cible ! Il faut l'adapter, bien sûr. Pour le moment, il cherche deux raccourcis dont les noms sont rans les variables racc1$ et racc2$. Il y a deux sous-programmes. Le premier, nommé test, charge le fichier raccourci dans un tableau (largement surdimensionné, donc à adapter aussi). Une variable dump% permet d'avoir un dump hexa/ascii du contenu du raccourci (par défaut, désactivé). La seconde routine, nommée find, trouve le nom du fichier cible et l'affiche. On peut extraire les parties significatives de ce programme pour l'intégrer dans une application. - Code:
-
label test, find
dim racc1$ : racc1$ = "C:\temp\Racc.txt" dim racc2$ : racc2$ = "Raccourci vers Copie de horloge.ini" dim dump% : dump% = 0 dim s$, block%(10000), siz%, i%, racc$, t$, l% , j%
width 0,1000 : height 0,800 memo 10 : top 10,10 : left 10,10 bar_vertical 10 : font_name 10,"courier" width 10,950 : height 10,750
racc$ = racc1$ gosub test gosub find
racc$ = racc2$ gosub test gosub find end
test: item_add 10,racc$ if lower$(right$(racc$,4))<>".lnk" then racc$ = racc$ + ".lnk" filebin_open_read 1,racc$ siz% = filebin_size(1) item_add 10,"Taille: "+str$(siz%) if siz%>10000 then siz% = 10000 filebin_block_read 1,siz%,block%(0) filebin_close 1 if dump%=0 then return i% = 0 s$ = "" t$ = "" while i%<siz% if block%(i%)<32 t$ = t$ + ". " else t$ = t$ + chr$(block%(i%)) + " " end_if s$ = s$ + right$("0"+hex$(block%(i%)),2) + " " if len(s$)>90 item_add 10,s$ item_add 10,t$ s$ = "" t$ = "" item_add 10,"" end_if i% = i% + 1 end_while if len(s$)>0 item_add 10,s$ item_add 10,t$ end_if return
find: for i%=1 to siz% if block%(i%)=hex("7D") if block%(i%+1)=hex("78") if block%(i%+2)=hex("4") if block%(i%+3)=hex("10") l% = block%(i%-1) t$ = "" for j%=1 to l% t$ = t$ + chr$(block%(i%+4+3+j%)) next j% item_add 10,"Cible: "+t$ item_add 10," " return end_if end_if end_if end_if next i% item_add 10,"Cible non trouvée !" item_add 10," " return | |
| | | Invité Invité
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 15:46 | |
| Bonjour Klaus, Je regarderai ton programme. Je sais que je peux le faire en AutoIt maintenant, car les commandes existent, mais bon je veux l'éviter. Je sais que j'ai déjà voulu charger avec un raccourcis, car j'ai très peu de mémoire sur mon ordinateur, et je ne sais plus très bien ce que j'avais voulu faire en ce temps là, mais je crois que c'était pour éviter de recopier des fichiers sur le disque C. (la phrase est un peu lourde, le principal est de comprendre)
Donc à l'occasion, si cela se reproduit, j'aurai ton programme en référence. merci.
@amboise Je viens de jeter un oeil à ton site, et ça semble correcte. Bon c'est pas mon choix, mais c'est une adresse à retenir. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 16:13 | |
| Voici une version en peu plus aboutie. J'ai séparé les fonctions de "chargement" du raccourci de la fonction de "dump". Et je recrée le bloc de données à chaque fois, pour la taille exacte du raccourci - il n'y a plus d'espace perdu. Voici ce que ça donne: - Code:
-
' test_raccourcis.bas
label load, dump, find
dim racc1$ : racc1$ = "C:\temp\Racc.txt" dim racc2$ : racc2$ = "Raccourci vers Copie de horloge.ini" dim dump% : dump% = 0 : ' mettre 1 pour obtenir un dump hexa/alpha dim s$, block%(1), siz%, i%, t$, l% , j% dim racc$, path$ : ' paramètre entrée et sortie
width 0,1000 : height 0,800 memo 10 : top 10,10 : left 10,10 bar_vertical 10 : font_name 10,"courier" width 10,950 : height 10,750
racc$ = racc1$ gosub load if dump%=1 then gosub dump gosub find
racc$ = racc2$ gosub load if dump%=1 then gosub dump gosub find
end
load: item_add 10,racc$ if lower$(right$(racc$,4))<>".lnk" then racc$ = racc$ + ".lnk" filebin_open_read 1,racc$ siz% = filebin_size(1) if variable("block%")=1 then free block% dim block%(siz%) item_add 10,"Taille: "+str$(siz%) if siz%>10000 then siz% = 10000 filebin_block_read 1,siz%,block%(0) filebin_close 1 return
dump: i% = 0 s$ = "" t$ = "" while i%<siz% if block%(i%)<32 t$ = t$ + ". " else t$ = t$ + chr$(block%(i%)) + " " end_if s$ = s$ + right$("0"+hex$(block%(i%)),2) + " " if len(s$)>90 item_add 10,s$ item_add 10,t$ s$ = "" t$ = "" item_add 10,"" end_if i% = i% + 1 end_while if len(s$)>0 item_add 10,s$ item_add 10,t$ end_if return
find: for i%=1 to siz% if block%(i%)=hex("7D") if block%(i%+1)=hex("78") if block%(i%+2)=hex("4") if block%(i%+3)=hex("10") l% = block%(i%-1) t$ = "" for j%=1 to l% t$ = t$ + chr$(block%(i%+4+3+j%)) next j% path$ = t$ item_add 10,"Cible: "+t$ item_add 10," " return end_if end_if end_if end_if next i% path$ = "_" item_add 10,"Cible non trouvée !" item_add 10," " return
Dernière édition par Klaus le Dim 3 Juin 2012 - 19:21, édité 1 fois | |
| | | Invité Invité
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 16:20 | |
| Je mettrais ton programme dans mon "sorte d'espace..." que je fais ces jours-ci. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 21:06 | |
| J'ai découvert un problème avec des cas particuliers. J'ai trouvé une doc sur la structure interne d'un raccourci et je vais faire le travail proprement. A plus tard... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: lire depuis un raccourcis. Dim 3 Juin 2012 - 23:06 | |
| Voilà, c'est réglé. Je pense que maintenant, on peut trouver les cibles des raccourcis pour tout fichier ou répertoire situés sur la machine locale. Je n'ai pas traité les raccourcis réseaux. Il y a deux sous-programmes significatifs: LOAD - charge un raccourci en mémoire ANALYZE - trouve le nom complet vers la cible du raccourci Ul faut charger le le nom complet du raccourci dans la variable racc$, puis appeler les deux sous-programmes dans l'ordre, et on trouve le nom du chemin dans la variable path$. Voici le module définitif: - Code:
-
' test_raccourcis.bas
label load, dump, analyze
dim racc1$ : racc1$ = "Raccourci vers Test_EXECUTE.exe" dim racc2$ : racc2$ = "Raccourci vers Test_EXECUTE.bas" dim racc3$ : racc3$ = "C:\Test\Raccourci vers a.txt" dim dump% : dump% = 0 : ' mettre 1 pour obtenir un dump hexa/alpha dim s$, block%(1), siz%, i%, t$, l% , j% , off$, o% , o1%, o2% , dsk$ dim info%
dim flags% : ' flags du raccourci dim flags_shell%, flags_target%, flags_description%, flags_relative% dim flags_work%, flags_arguments%, flags_icon%
dim racc$, path$ : ' paramètres entrée/sortie
width 0,1000 : height 0,800 memo 10 : top 10,10 : left 10,10 bar_vertical 10 : font_name 10,"courier" width 10,950 : height 10,750
racc$ = racc1$ item_add 10,racc$ gosub load if dump%=1 then gosub dump gosub analyze item_add 10,"Cible: "+path$ item_add 10," "
racc$ = racc2$ item_add 10,racc$ gosub load if dump%=1 then gosub dump gosub analyze item_add 10,"Cible: "+path$ item_add 10," "
racc$ = racc3$ item_add 10,racc$ gosub load if dump%=1 then gosub dump gosub analyze item_add 10,"Cible: "+path$ item_add 10," "
end
load: if lower$(right$(racc$,4))<>".lnk" then racc$ = racc$ + ".lnk" filebin_open_read 1,racc$ siz% = filebin_size(1) if variable("block%")=1 then free block% dim block%(siz%) if dump%=1 then item_add 10,"Taille: "+str$(siz%) if siz%>10000 then siz% = 10000 filebin_block_read 1,siz%,block%(0) filebin_close 1 return
dump: i% = 0 s$ = "" t$ = "" off$ = "0000 " while i%<siz% if block%(i%)<32 t$ = t$ + ". " else t$ = t$ + chr$(block%(i%)) + " " end_if s$ = s$ + right$("0"+hex$(block%(i%)),2) + " " if len(s$)=48 item_add 10,off$+s$ item_add 10,off$+t$ s$ = "" t$ = "" item_add 10,"" off$ = right$("000"+hex$(i%+1),4)+" " end_if i% = i% + 1 end_while if len(s$)>0 item_add 10,off$+s$ item_add 10,off$+t$ end_if return
analyze: ' analyser les flags du raccourci flags% = block%(hex("14")) ' bit number and meanings: ' 0 The shell item id list is present. The shell item id list is absent. ' 1 Points to a file or directory. Points to something else. ' 2 Has a description string. No description string. ' 3 Has a relative path string. No relative path. ' 4 Has a working directory. No working directory. ' 5 Has command line arguments. No command line arguments. ' 6 Has a custom icon. Has the default icon. return flags_shell% = bin_and(flags%,1) flags_target% = bin_and(flags%,2) flags_description% = bin_and(flags%,4) flags_relative% = bin_and(flags%,8) flags_work% = bin_and(flags%,16) flags_arguments% = bin_and(flags%,32) flags_icon% = bin_and(flags%,64) if dump%=1 if flags_shell%>0 then item_add 10,"Shell item ID est présent" if flags_target%>0 then item_add 10,"Pointe vers un fichier ou dossier" if flags_description%>0 then item_add 10,"Description présente" if flags_relative%>0 then item_add 10,"Chemin relatif présent" if flags_work%>0 then item_add 10,"Dossier de travail présent" if flags_arguments%>0 then item_add 10,"Arguments de commande présents" if flags_icon%>0 then item_add 10,"Icône présente" end_if o% = hex("4C") if flags_target%>0 o% = o% + 2 : ' dépasser la longueur de la section l% = block%(o%) + block%(o%+1)*256 while l%>0 : ' dépasser toute la section o% = o% + l% l% = block%(o%) + block%(o%+1)*256 end_while o% = o% + 2 end_if if flags_target%>0 o2% = o% o% = o% + 4 : ' dépasser la taille de la liste o% = o% + 4 : ' dépasser la taille de l'entête de la liste info% = block%(o%) + block%(o%+1)*256 + block%(o%+2)*256*256 + block%(o%+3)*256*256*256 if bin_and(info%,1)>0 : ' volume and local base flag o% = o% + 8 : ' dépasser les infos et l'adresse du label o1% = o2% + block%(o%) + block%(o%+1)*256 + block%(o%+2)*256*256 + block%(o%+3)*256*256*256 path$ = "" while block%(o1%)>0 path$ = path$ + chr$(block%(o1%)) o1% = o1% + 1 end_while end_if end_if return
| |
| | | Contenu sponsorisé
| Sujet: Re: lire depuis un raccourcis. | |
| |
| | | | lire depuis un raccourcis. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |