Get the Shortcut target

Just starting out? Need help? Post your questions and find answers here.
Little John
Addict
Addict
Posts: 4519
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: Get the Shortcut target

Post by Little John »

Hello infratec,

many thanks for your code! The function GetLinkTarget() is exactly what I was looking for.
Although the code is rather old, it seems to work almost flawlessly here on my system with the current PB version 5.73 LTS on Windows 10. :-)
But because newer PB versions always create Unicode programs, two lines have to be changed:

In both codes that you posted, replace

Code: Select all

Target$ = PeekS(*Buffer + *LinkInfo\LocalBasePathOffset)
Target$ + PeekS(*Buffer + *LinkInfo\CommonPathSuffixOffset)
with

Code: Select all

Target$ = PeekS(*Buffer + *LinkInfo\LocalBasePathOffset, -1, #PB_Ascii)
Target$ + PeekS(*Buffer + *LinkInfo\CommonPathSuffixOffset, -1, #PB_Ascii)
This seems to work even with targets that contain German umlauts.

Thanks again!
Little John
Addict
Addict
Posts: 4519
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: Get the Shortcut target

Post by Little John »

Unfortunately, I encountered problems when checking the links in my start menu with GetLinkTarget().
My computer is pretty new, I did not mess with any start menu entries, and all links in the start menu work as expected when I click at them. So the error messages by GetLinkTarget() are wrong. Here are some examples (PB 5.73 LTS (x64) on Windows 10):
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Character Map.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Math Input Panel.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Quick Assist.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Remote Desktop Connection.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Snipping Tool.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Steps Recorder.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Fax and Scan.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Wordpad.lnk has no LinkInfo

Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice (abgesicherter Modus).lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice Base.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice Calc.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice Draw.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice Impress.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice Math.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice Writer.lnk has no LinkInfo
Error: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Büro\LibreOffice 7.1\LibreOffice.lnk has no LinkInfo
Post Reply