Search the Community
Showing results for tags 'MSI Advertised'.
Found 1 result
_FileGetShortcutEx This UDF will return shortcut (.LNK) file information for more advanced shortcuts that AutoIt's built-in FileGetShortcut() chokes on. The following types of shortcuts can be retrieved using this function: MSI Advertised Shortcuts URL (website) Shortcuts that are embedded (rather than put in a .URL file) Special GUID Shell Item Shortcuts. This is only one level deep at the moment, so it will only read the base Folder GUID (For example: shortcuts to 'My Computer', 'Recycle Bin' return fine) UNC Shortcuts ("PCNAME"). This is also only one level deep currently, so "PCNAMEFolder" shortcuts will fail (as well as regular shortcuts, of course) Operation is simple: call '_FileGetShortcutEx("filename")' to get an array that is arranged the same as FileGetShortcut(). Included in the ZIP are two examples of shortcuts that AutoIt will fail on, but this function will work on. I don't have any MSI Advertised shortcut examples, but I believe Microsoft Office and ACDSee shortcuts both use these shortcuts types which return wonky results using AutoIt's function. Thanks go out to Prog@ndy for the original '_FileGetShortcutEx' function and MSI shortcut code (which I converted for Unicode). See my original post here for his code. *Shortcut Key retrieval* This was requested on the Help board, and I thought it was a good idea to include it here. If you need to grab a shortcut's associated Shortcut Key, you can use the below code, assuming you already know beforehand that the file is a shortcut file: $sShortcutFile = "C:\MyShortcut.lnk" $nShortcutKey = Number(StringToBinary(StringMid(FileRead($sShortcutFile, 68), 65, 4))) ConsoleWrite("Shortcut key = " & $nShortcutKey & @CRLF) The format of the key is described under IShellLink::GetHotkey, and I've included code that converts most key combos in >this post. *Special note on 'Normal' Internet shortcuts: While this UDF only looks at .LNK shortcuts (what you use FileGetShortcut() with), some confuse .URL Internet shortcuts with these types, so I decided I'd put a solution for those interested on how to get a URL Internet shortcut. It's actually so simple it can be done in one line, so here it is (note the .URL extension): $sURL=IniRead(@UserProfileDir&"\Favorites\Google.URL","InternetShortcut","URL","") Ascend4nt's AutoIT Code License agreement: no license - just be a good person and credit other people for their work, yeh? Download the ZIP from my site