That is NOT the way to go. I want to read the file NOT MAKE IT.
Since if i get this problematic .lnk file
And Microsoft (trough the properties) can
read it as a link file so i can
as a programmer
1) Check what is the problem in installer to create the shortcut, there might be a solution to this problem... Which installer you are using ??
2) Worst case scenario is read the .lnk file as a text file and parse the http: string.
"Every Little Smile can touch Somebody's Heart...
May we find Hundreds of Reasons to Smile Everyday... and
May WE be the Reason for someone else to smile always!" (ICAN)
"Your thoughts are the architects of your destiny."
I've tried using IUniformResourceLocator and IPropertyStorage, following the guide from MSDN on both Vista and XP (Internet Shortcut[^]), but none of them returns a bit. (Note they categorize this page as Legacy Shell Features, don't know if they've removed it or not)
The alternative way I could think of is to open this file through a hidden web browser control and then read the URL from it.
Obviously this is not the way to go.
because right mouse click on the file bring
In the properties one sees the STRING http://....
So if Microsoft dose it we programmers can do it to
BUT HOW that is the BIG BIG qeuestion.
I have put this problem on 4 forumes
Delphi and c++ no one gave me an answer
Some went to URL file but the problem is the
.lnk file. And it is a .lnk file.
Well to sum it up good luck in the search for an answer.
I downloaded your .lnk file and had a look at it via Properties. I noticed that although it displayed the URL text, it was not possible to edit it in any way, which suggests that even Microsoft did not accept it as a valid link. I guess there is some undocumented feature that allows access to it, possibly by having the details of the file structure.
I tried to parse the file using IPropertyStorage with FMTID_Intshcut and FMTID_InternetSite, it turns out both of the property set is empty even though they can be opened successfully. Nevertheless, I can see the URL string from binary viewer.
I think they store data into both shortcut file and its property set. In stead of using documented methods to read data out using IPropertyStorage from property set, they might use some undocumented methods to read data directly from the file, as you said.
I agree with you. If they can, we can, as long as both of us are using the documented methods.
If the URL data is stored in Property Set of the internet shortcut file, File System will not keep this part of data when the file is moved by default.
Have you tried to parse the file using the original path where the link file was generated? If you can access the original shortcut file, can you check if the URL text in Properties is editable or not?
So every time I use Pascal I am pushed more towards using FreePascal - Object Pascal instead of Delphi. It could be that FreePascal Compiler supports almost every OS I can think of or that it supports so really nifty language changes that Delphi does not. Things like += or ++ and --! also operator overloading Well to be fair that one was added to Delphi not to long ago.
But with my new extensive use of Linux servers and my utter dislike of compiling C++ programs I have been using FreePascal Compiler with Lazarus (I love this IDE) to develop all of my compiled server applications. I am even starting to work on a CGI Framework that supports PascalScript, kinda like a PHP of Pascal But that is nothing serious just for fun.
The only downsides I have noticed about the usage of FreePascal Compiler is that at times it seems unstable and FreePascal Compiler applications are a bit larger than Delphi ones.