Развертывание ярлыка на рабочем столе на устройстве под управлением Windows CE 4.2 (VS2005)

StackOverflow https://stackoverflow.com/questions/145440

Вопрос

У меня есть приложение, написанное с использованием VS2005 на C #, ориентированное на Compact Framework 2.0 SP2.Как часть решения, у меня есть проект CAB deploy, который развертывается на устройстве без проблем.Чего я не могу сделать, так это создать ярлык для моего приложения на рабочем столе устройства.

Я потратил несколько часов на чтение различных фрагментов документации (почему поиск на сайте MSDN такой плохой?), следовал инструкциям, но без радости.

То, что я сделал, это:

  • Добавьте узел "Папка Windows" в файловую систему
  • Создал папку под ней с именем "Рабочий стол".
  • Создал ярлык для основного вывода приложений и поместил его в папку "Рабочий стол".

Что я упускаю из виду?

Это было полезно?

Решение

Ярлык Windows CE (CE любой версии, включая WinMo) использует текстовый файл в формате ASCII.Они находятся в таком виде:

{XX}#{ПУТЬ}

Где:

  • XX = количество символов в пути, для включения числа со знаком #
  • PATH = полный путь к файлу для запуска.

Например:

20#\Windows\calc.exe

Другой вариант - использовать раздел CEShortcuts INF-файла, используемого для создания вашего CAB.

В разделе [DefaultInstall] INF задайте CEShortcuts имя раздела по вашему выбору (что-то вроде "Ярлыки"), затем добавьте этот раздел с вашим дескриптором ярлыка.MSDN подробно об этом здесь.

В MSDN также есть статья о создании проекта развертывания для создания cab (доступно здесь), но, честно говоря, возможности проекта ограничены, и IMO инструмент, как правило, просто отстой.По сей день мы по-прежнему используем прямые вызовы CABWIZ (что тоже отстой, но это наш единственный выбор) с рукописными INF-файлами.

Другие советы

Немного поздно, но, возможно, это поможет кому-то вроде меня, кто искал эту проблему, я решил проблему следующим образом:

Я добавил пользовательскую папку на корневой узел (файловая система на локальном компьютере) и назвал ее %CE3%.Это ярлык для \Windows\Desktop.Я добавил свой ярлык (щелкните правой кнопкой мыши создать новый ярлык) и дал ему имя.Вот и все, тогда я строю!

При анализе раздела "Ярлыки" в сгенерированном inf он выглядел хорошо.

[Shortcuts]
"ShortCutName",0,"MyApp.exe","%CE3%"

И когда я развернул, и это сработало отлично!

Я использую VS2008 и развертываю на Windows CE 5.0

Вот список ярлыков: ярлыки Windows CE

У меня была такая же проблема, и я нашел простое решение, если кому-то это все еще нужно.

Вместо добавления специальной папки Windows просто добавьте пользовательскую папку с именем Windows, затем папку внутри нее с именем Desktop и поместите туда ярлык.

У меня это сработало.

Самый простой способ - зайти в папку приложения в Cab Project (настройка), щелкнуть правой кнопкой мыши на вашей EXE-программе (exe-приложение, для которого вы хотите создать ярлык) и выбрать "Создать ярлык для" и переместить этот файл в любую папку, которую вы хотите, например, "Папка меню пуск"

Митч:создайте файл LNK, как и раньше, но дайте ему имя типа "shortcut.lnkx" (обратите внимание на "x" в конце).Затем вы можете добавить его в папку "Рабочий стол" вашего проекта CAB.Как только файл будет добавлен, измените свойство TargetName на "shortcut.lnk" и скомпилируйте. Я думаю , что это сработает.

Предполагая, что вы используете Windows Mobile (5.0 или 6.x), вы могли бы использовать этот синтаксис для создания файла в виде shourtcut(*,lnk):

SHORTCUT = XX#"\Program Path..."?\Icon File Path...,-Icon Number

Где:

XX = Количество символов, которые должны быть включены в аргументы после Пути программы к процессу.Путь к программе = Местоположение целевого exe-файла.Путь к файлу значка = Если exe-файл не содержит изображения значка или вы хотите использовать другое, это местоположение файла, содержащего изображение значка.Номер значка = Индекс изображения значка в файле, он начинается с 0.

Ex: 86#"\Storage Card\Logical Sky CEdit\cedit.exe"?\Storage Card\Logical Sky CEdit\cedit.exe,-101

Я протестировал его, и он работает нормально.

1.Скопируйте файл.

2. Перейдите на рабочий стол (или в любое другое место, где вы хотите создать ярлык).

3. Щелкните правой кнопкой мыши на пустом месте, выберите Вставить ярлык.

Вот и все.

На самом деле, это довольно просто!(С использованием VS 2008 и проекта Smart Device CAB)

1- В обозревателе решений в VS перейдите к своему проекту CAB и щелкните по нему правой кнопкой мыши.

2- Перейдите в меню Просмотр -> Файловая система

3- Здесь, в левой колонке, щелкните правой кнопкой мыши и выберите "Добавить специальную папку".

4- Выберите папку меню "Пуск" в качестве папки быстрого доступа

5- Перейдите в папку приложения чуть выше

6- В правом столбце щелкните правой кнопкой мыши на основном выводе и выберите "Создать ярлык для бла-бла-бла".

7- Тогда вам просто нужно переместить его в папку меню "Пуск" слева и переименовать файл :)

НЕОБЯЗАТЕЛЬНО:Вы даже можете добавить шрифты на устройство, используя "Папку шрифтов" в меню "Добавить специальную папку"!

Ваше здоровье

Я предполагаю, что вы работаете с "Проектом Smart Device CAB Project"?Я не думаю, что этот проект создает ярлыки правильным образом для Windows CE 4.2.Я думаю, вы можете загрузить SDK от Microsoft, который после установки покажет вам что-то вроде "Windows CE CAB Project" в качестве опции проекта.

Хотя я думаю, что вы можете сделать это вручную.Ярлык Windows CE - это файл с расширением * .lnk, поэтому, если вам нужен ярлык с надписью "Мое приложение", создайте на своем КОМПЬЮТЕРЕ текстовый файл с именем "Мое приложение.lnk".Содержимое файла должно быть:

46#\Program Files\My Application\MyApplication.exe (# должна быть полной длиной пути)

или любой другой полный путь, который есть у вашего приложения на устройстве Windows CE.

В вашем проекте CAB продолжайте добавлять папку "Windows", а затем папку "Рабочий стол", как и раньше.В папке "Рабочий стол" щелкните правой кнопкой мыши и добавьте созданный вами файл LNK.Возможно, вам придется выполнить программную перезагрузку устройства, чтобы ярлык появился после установки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top