Я использовал C# и Powershell для создания ярлыков, но когда они создаются в коде, они не работают. Я нажимаю на ярлык, курсор показывает, что ПК думает секунду, а затем ничего не происходит. Это код Powershell, который я использовал:
$currPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$tgtPath = ($currPath + "\bin\MyApp.exe")
$scutPath = ([Environment]::GetFolderPath("Desktop") + "\MyApp.lnk")
$wShell = New-Object -ComObject WScript.Shell
$scut = $wShell.CreateShortcut($scutPath)
$scut.TargetPath = $tgtPath
$scut.Save()
Код C# делает то же самое, используя библиотеку IWshRuntimeLibrary. Этот небольшой скрипт просто создает ярлык на чьем-то рабочем столе после того, как он загрузил мой небольшой автономный исполняемый файл. Я могу вручную создать ярлык, и все работает нормально. Почему я не могу сделать это через код?
Я создал несколько ярлыков и файлов .url на рабочем столе с тем же именем в ходе тестирования, я не уверен, что это имеет значение.
WshShell
противWshShellClass
. Решение предназначено для С#. - person Kraang Prime   schedule 22.12.2016