Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • October 01, 2016, 10:31:08 AM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Missing icons for some links on Windows 8 64-bit  (Read 774 times)

Vanav

  • Member
  • Joined in 2009
  • **
  • default avatar
  • Posts: 13
    • View Profile
    • Donate to Member
Missing icons for some links on Windows 8 64-bit
« on: June 22, 2015, 10:19:25 AM »
There was an old issue about missing icons, but now seems issue is back (maybe it was fixed only for Windows 7 that time?). I'll describe it again in short here, see old thread for more information.

Screenshot - 2015-06-22 17_23_10.png

Some links for 64-bit applications doesn't show icon on Windows 8. This issue only affects 64-bit applications on Windows 8. It doesn't appears on Windows 7 nor for 32-bit applications. Not all links are affected, but some of them. Options "Shortcut Lnk Resolution" changes nothing here. Only applications in "C:\Program Files" are affected, not in "C:\Program Files (x86)".

Affected applications:
- TortoiseSVN, TortoiseMerge, TortoiseIDiff
- Everything
- 3DMark
- SecureFX, SecureCRT
- 7-Zip
- dupeGuru
- COMODO Internet Security (icon is correct, path is not correct)
- Far Manager 3 x64
- IntelĀ® Rapid Storage Technology
- Microsoft Mathematics

Lets look inside "bad" lnk file:
lnk_parser_cmd.exe "C:\ProgramData\Start Menu\Programs\TortoiseSVN\TortoiseMerge.lnk"

Code: Text [Select]
  1. [Filename]:                             C:\ProgramData\Start Menu\Programs\TortoiseSVN\TortoiseMerge.lnk
  2.  
  3. [Header]
  4. Date created:                           08/10/2014 (12:10:38.0) [UTC]
  5. Last accessed:                          08/23/2014 (15:25:37.234) [UTC]
  6. Last modified:                          08/10/2014 (12:10:38.0) [UTC]
  7. File size:                              2630400 bytes
  8. File attributes:                        0x00000020      (FILE_ATTRIBUTE_ARCHIVE)
  9. Icon index:                             0
  10. ShowWindow value:                       1               (SW_SHOWNORMAL / SW_NORMAL)
  11. Hot key value:                          0x0000          (None)
  12. Link flags:                             0x0000008f      (HasLinkTargetIDList, HasLinkInfo, HasName, HasRelativePath, IsUnicode)
  13.  
  14. [Link Target ID List]
  15. CLSID:                                  20d04fe0-3aea-1069-a2d8-08002b30309d = My Computer
  16.  
  17. Drive:                                  C:\
  18.  
  19. Last modified:                          08/23/2014 (15:25:38.0) [UTC]
  20. Folder attributes:                      0x00000011      (FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_DIRECTORY)
  21. Short directory name:                   PROGRA~1
  22. Date created:                           08/22/2013 (13:36:16.0) [UTC]
  23. Last accessed:                          08/23/2014 (15:25:38.0) [UTC]
  24. Long directory name:                    Program Files
  25. Argument:                               @shell32.dll,-21781
  26.  
  27. Last modified:                          08/23/2014 (15:25:38.0) [UTC]
  28. Folder attributes:                      0x00000010      (FILE_ATTRIBUTE_DIRECTORY)
  29. Short directory name:                   TORTOI~1
  30. Date created:                           08/23/2014 (15:25:38.0) [UTC]
  31. Last accessed:                          08/23/2014 (15:25:38.0) [UTC]
  32. Long directory name:                    TortoiseSVN
  33.  
  34. Last modified:                          08/23/2014 (15:25:38.0) [UTC]
  35. Folder attributes:                      0x00000010      (FILE_ATTRIBUTE_DIRECTORY)
  36. Short directory name:                   bin
  37. Date created:                           08/23/2014 (15:25:38.0) [UTC]
  38. Last accessed:                          08/23/2014 (15:25:38.0) [UTC]
  39. Long directory name:                    bin
  40.  
  41. File size:                              2630400 bytes
  42. Last modified:                          08/10/2014 (12:10:38.0) [UTC]
  43. File attributes:                        0x00000020      (FILE_ATTRIBUTE_ARCHIVE)
  44. 8.3 filename:                           TORTOI~3.EXE
  45. Date created:                           08/10/2014 (12:10:38.0) [UTC]
  46. Last accessed:                          08/23/2014 (15:25:38.0) [UTC]
  47. Long filename:                          TortoiseMerge.exe
  48.  
  49. [Link Info]
  50. Location flags:                         0x00000001      (VolumeIDAndLocalBasePath)
  51. Drive type:                             3               (DRIVE_FIXED)
  52. Drive serial number:                    5238-03e0
  53. Volume label (ASCII):                   System SSD
  54. Local path (ASCII):                     C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe
  55.  
  56. [String Data]
  57. Comment (UNICODE):                      View Diff's, Merge Diff's, Resolve Conflicted Files and Apply Patches
  58. Relative path (UNICODE):                ..\..\..\..\..\..\Program Files\TortoiseSVN\bin\TortoiseMerge.exe
  59.  
  60. [Known Folder Location]
  61. Known folder GUID:                      905e63b6-c1bf-494e-b29c-65b732d3d21a = ProgramFiles
  62. First child segment offset:             185 bytes
  63.  
  64. [Metadata Property Store]
  65. Property set GUID:                      46588ae2-4cbc-4338-bbfc-139326986dce
  66. ID:                                     4
  67. Value:                                  0x001f (VT_LPWSTR)      S-1-5-18
  68.  
  69. [Special Folder Location]
  70. Special folder identifier:              38              (ProgramFiles)
  71. First child segment offset:             185 bytes
  72.  
  73. [Distributed Link Tracker Properties]
  74. Version:                                0
  75. NetBIOS name:                           xx
  76. Droid volume identifier:                0318f7dc-7f30-4740-9e53-5ca4943e0b8d
  77. Droid file identifier:                  516e9cba-2ad9-11e4-82c8-ac220b4cafe0
  78. Birth droid volume identifier:          0318f7dc-7f30-4740-9e53-5ca4943e0b8d
  79. Birth droid file identifier:            516e9cba-2ad9-11e4-82c8-ac220b4cafe0
  80. MAC address:                            xx:xx:xx:xx:xx:xx
  81. UUID timestamp:                         08/23/2014 (15:22:39.43) [UTC]
  82. UUID sequence number:                   712

Target is "C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe". The issue is in this lines:

Code: Text [Select]
  1. ...
  2. [Known Folder Location]
  3. Known folder GUID:                      905e63b6-c1bf-494e-b29c-65b732d3d21a = ProgramFiles
  4. First child segment offset:             185 bytes
  5. ...
  6. [Special Folder Location]
  7. Special folder identifier:              38              (ProgramFiles)
  8. First child segment offset:             185 bytes
  9. ...

This means that link refers to a file in FOLDERID_ProgramFiles folder, this constant is {905e63b6-c1bf-494e-b29c-65b732d3d21a} or CSIDL_PROGRAM_FILES = 0x0026 (decimal: 38).

But this constant has a different meaning in 32-bit and 64-bit applications. If you resolve link from 64-bit application it will lead to "%SystemDrive%\Program Files", but if you resolve it from 32-bit application it will lead to "%SystemDrive%\Program Files (x86)".

That's why FARR (32-bit) searches icon in "C:\Program Files (x86)\TortoiseSVN\bin\TortoiseMerge.exe" - not existent path. So, technically this is an issue with incorrect links, but it is very common, and it will be perfect if we can make a workaround.

Thank you!


« Last Edit: June 23, 2015, 04:08:00 AM by Vanav »

phitsc

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 1,186
    • View Profile
    • Donate to Member
Re: Missing icons for some links on Windows 8 64-bit
« Reply #1 on: June 23, 2015, 03:22:58 AM »
Thanks for reporting this Vanav (and in such great detail). Have the same problem but was too lazy to report it.