Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Ottenere informazioni collegamento
Forum - C# / VB.NET - [VB.NET] Ottenere informazioni collegamento

Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 12:08
Domenica, 12/06/2011
Questo topic è stato chiuso dal moderatore

Salve a tutti,
Vorrei, dato il percorso di un collegamento (es.: "C:\UnCollegamento.lnk"), ottenere a quale cartella/file punta.
E' possibile? :-|

Per intenderci meglio:
Ho una cartella "C:\Pincopallo", ho fatto "Crea collegamento" e ho messo il collegamento creato (chiamato "Pinco.lnk") sul desktop. Aprendo il collegamento apro la cartella "C:\Pincopallo"
Ora, sapendo "C:\Documents and Settings\Gigio\Desktop\Pinco.lnk", voglio poter ottenere "C:\Pincopallo"

EDIT: Grazie Totem per i link, in particolare per il secondo che è stato molto utile.
Ti volevo però chiedere chiarimenti riguardo a questo commento al flag SLR_NO_UI nell'enumeratore SLR_FLAGS

Do not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.

In una funzione io mi servo di quel campo, che sembra possa impostare il numero di millisecondi di timeout per cercare di ritrovare il file di destinazione.
Come faccio a settare "the high-order word" al valore che desidero? (credo si riferisca alla high-order word del campo stesso)

Ultima modifica effettuata da Qwertj il 12/06/2011 alle 15:02


Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
3
Down
V
Segnala al moderatore
Postato alle 12:14
Domenica, 12/06/2011

grazie, ottimo snippet il secondo - Qwertj - 12/06/11 13:12
editato una cosa guarda su ^ - Qwertj - 12/06/11 15:02


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
0
Down
V
Segnala al moderatore
Postato alle 14:00
Martedì, 14/06/2011
Sarebbe la parola più significativa del campo fFlags, ossia i primi 16 bit. Secondo le specifiche del formato:
http://www.stdlib.com/art6-Shortcut-File-Format-lnk.html
i flags sono un campo a 32 bit con offset di 20 bytes. A seconda dell'endianness dovrai leggere la word di offset 20 o quella di offset 22 e cambiarne il valore.

ok, più concretamente come faccio? non sono molto pratico di :S - Qwertj - 14/06/11 18:49
Con BinaryWriter: http://totemslair.org/guide/viewchapter.php?guida=vb&id=56 - Il Totem - 15/06/11 13:54
no ok, però la cosa è diversa. Io ho una funzione a cui passo un valore (un flag, un campo di un enumeratore) che ha la descrizione che ho riportato sopra. Il valore dovrei cambiarlo non nel file, ma nel valore che gli passo (vorrei metterlo a 1)) - Qwertj - 15/06/11 15:07
Allora fai (flags And &H00001111) Or &H00010000 - Il Totem - 16/06/11 17:34
grazie :O - Qwertj - 16/06/11 18:47
* :D - Qwertj - 16/06/11 18:47


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM