|
Разное поведение при копировании ярлыков
|
|||
---|---|---|---|
#18+
Надо программно вытянуть shortcut на рабочий стол. Ярлык системный (т.е локализован) но на новых OS ярлык как бы есть, но запрятан так глубоко что штатному юзеру с ходу непонятно как добраться. f - путь к исходному ярлыку (он там "на русском") Код: c# 1.
Копируется, но становится англиийским. Попробовал так благо писал сию ф-цию когда-то Код: vbnet 1. 2.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97.
И все OK - скопированный ярлык тоже с русской локализацией (как и ручками впрочем). В pszTargetFolder создается desktop.ini, в нем путь к локализованному ресурсу. Где собака порылась? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 23:18 |
|
Разное поведение при копировании ярлыков
|
|||
---|---|---|---|
#18+
Я верю, что еще при моей жизни в C# появится класс для создания ярлыков! Ведь в классе управлении службами System.ServiceProcess свойство StartType все же было реализовано в NetFramework 4.6! Не прошло и 20 лет! До этого надо было читать реестр. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2019, 20:18 |
|
Разное поведение при копировании ярлыков
|
|||
---|---|---|---|
#18+
Cat2Я верю, что еще при моей жизни в C# появится класс для создания ярлыков! Создавать я умею. Создать / удалить ярлык на рабочем столе программно. Задача куда более простая. Готовый ярлык уже есть (мне конкретно нужен ярлык к Fax and Scan). На Win8.0 и выше он запрятан сюда: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Fax and Scan.lnk Даже в замечательном меню Win10, найти папку Стандартные-Windows после всех восьмерок - это не каждый догадается (я только вчера копаючись понял что он там таки штатно есть). На Win7 он еще был на виду по кнопке Start. Посему возникает естественное желание скопировать оный в 1) SpecialFolder.CommonDesktopDirectory 2) SpecialFolder.CommonPrograms (в корень Start, чтоб был на виду) Свой делать не хочется, т.к. 1) он локализованный, 2) есть примечание, опять же локализованное 3)придется возиться с перенаправлениями на x64 os в 32-битном коде при вычислении/написании пути для target и т.д. Ищется так: Код: vbnet 1.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
А вот SHFileOperation (по сути аналог переноса ручками) очень даже справляется, будет "Факсы и сканирование" Кажется есть в .Net другой класс, не IO.File.Copy, который надстройка над SHFileOperation (с прогрессами и корзинами если хочется), но просто уже не охота копаться и вспоминать. Cat2Ведь в классе управлении службами System.ServiceProcess свойство StartType все же было реализовано в NetFramework 4.6! Не прошло и 20 лет! До этого надо было читать реестр. Я так делаю: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
А раньше вообще не парился: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Cat2в NetFramework 4.6 Я сижу в .Net 4.5, причем стараюсь делать .Net 2.0 совместимый код (дублирование под XP, жаба душит отказаться от этой "поддержки", уж очень наработки хорошие, "дорог как память"). А посему даже SpecialFolder.CommonDesktopDirectory и SpecialFolder.CommonPrograms пришлось делать через SHGetFolderPath (ну там несколько аналогов этой ф-ции есть, смысл в наборе CSIDL_) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2019, 04:14 |
|
|
start [/forum/topic.php?fid=20&msg=39761974&tid=1399109]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 286ms |
total: | 544ms |
0 / 0 |