Перетащите файлы на ярлык на рабочем столе — файлы не открываются в приложении

У меня есть небольшое приложение для просмотра журналов, чтобы читать некоторые пользовательские журналы. Я могу перетаскивать файлы прямо в исполняемый файл, и они прекрасно загружаются через командную строку.

Однако, если я перетащу файлы на ярлык на рабочем столе, Windows не откроет приложение, используя файлы в качестве аргументов командной строки. Приложение вообще не открывается.

Есть ли что-то, что мне не хватает?

Это в Windows 7 Enterprise x64 без каких-либо повышенных привилегий. Все это написано на C#, .NET 4.0 Client framework и т.д.


person StyxRiver    schedule 21.06.2011    source источник


Ответы (3)


Является ли ваш ярлык на рабочем столе рекламируемым ярлыком? Вы не можете перетащить на объявленный ярлык. Если вы используете WiX или проекты установки Visual Studio для создания установщика .msi для своего приложения, возможно, что ваш ярлык на рабочем столе, который создает для вас установщик Windows, является объявленным ярлыком. Кроме того, вы можете определить, рекламируется ли ярлык, щелкнув его правой кнопкой мыши, просмотрев свойства и увидев, выделено ли поле «Цель» серым цветом. Если да, то рекламируется. Один из способов предотвратить это — установить DISABLEADDVTSHORTCUTS, которое является свойством установщика Windows. Установка этого свойства отключит все объявленные ярлыки для вашего приложения.

Самый простой способ установить или проверить это — открыть файл .msi с помощью Orca и добавьте свойство DISABLEADVTSHORTCUTS со значением 1 в таблицу свойств, а затем повторите попытку установки.

person Stephen Booher    schedule 28.11.2011

Я считаю, что для того, чтобы перетаскивание файла поверх ярлыка заработало, вам нужно определить свое приложение в реестре, и создать для него ключ реестра open command.

Следующая ссылка может быть хорошей отправной точкой, чтобы узнать, как это сделать. http://msdn.microsoft.com/en-us/library/ee872121%28v=VS.85%29.aspx

Или просто загляните под HKEY_CLASSES_ROOT\Application\notepad.exe в реестр вашей машины, чтобы быстро увидеть пример.

person Ran    schedule 18.07.2011

Самый простой способ — запустить установщик с параметром командной строки «DISABLEADVTSHORTCUTS=1», например setup.msi DISABLEADVTSHORTCUTS=1

person Gabor Forgacs    schedule 11.05.2012