Перетащите файлы на рабочий стол ярлык - не открывать файлы в приложении - PullRequest
3 голосов
/ 21 июня 2011

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

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

Что-то мне не хватает?

Это на Windows 7 Enterprise x64, не работает с повышенными привилегиями. Все это написано на C #, .NET 4.0 Client Framework и т. Д.

Ответы [ 3 ]

2 голосов
/ 28 ноября 2011

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

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

1 голос
/ 18 июля 2011

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

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

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

0 голосов
/ 11 мая 2012

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

...