Я использовал C# и Powershell для создания ярлыков, но когда они создаются в коде, они не работают. Я нажимаю на ярлык, курсор показывает, что ПК думает секунду, а затем ничего не происходит. Это код Powershell я использовал:Ярлыки Windows, созданные программно не работают
$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 файлов на рабочем столе с тем же именем во время тестирования, я не уверен, что это важно.
Щелкните правой кнопкой мыши ярлык, сделанный программно, и сравните поля «Target» и «Start In» с вашим вручную созданным, который работает. – Quantic
Возможный дубликат [Создание ярлыка файла (.lnk)] (http://stackoverflow.com/questions/18023379/creating-a-file-shortcut-lnk) –
Попробуйте решение, указанное в приведенной выше ссылке. (и имейте в виду примечание относительно ссылки .NET 4.0 «WshShell» vs «WshShellClass». Решение для C#. –