
158
|
Chapter 4, File Choosers
#30 Real Windows Shortcut Support
HACK
H A C K
#30
Real Windows Shortcut Support
Hack #30
Support Windows shortcuts by actually opening and parsing files with the
under-documented LNK format.
It’s one thing to properly display Windows shortcuts [Hack #29] by looking for
the .lnk extension and changing the default icon to look like a link. But
there’s a glaring flaw: when you click on the shortcut it doesn’t actually link
anywhere! This hack will make the shortcuts really work by hacking into the
undocumented shortcut files themselves.
Since links are not supported natively by the filesystem, Windows fakes it by
storing the shortcut metadata (path, icon, and other information) in a .lnk file.
When you click on the shortcut, the windows file manager reads the LNK file,
extracts the target file/directory path, and then opens a new window at the
real location. Your Java program can do the exact same thing using a custom
FileSystemView. The only tricky part is actually parsing the LNK files.
Microsoft has never documented the LNK file format, preferring native
Windows developers to use system APIs for all manipulation. Creative hack-
ers on the Web have reverse engineered most of the format, which fortu-
nately includes the parts you need to extract target filepaths.
Jesse Hager has compiled a great PDF describing the format
in detail. I used that document to write the code in ...