Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата Kopejkin:
то как записать Ярлык Интернета (.url) »
Ну url файл это вообще "не ярлык" сам по себе (если можно так выразиться), это файл формата INI, соответственно и создавать нужно либо командами WriteINIStr в файл с расширением url, либо просто распаковывать заранее подготовленный файл
Содержание файла такое:
Код: Выделить весь код
[InternetShortcut]
URL=http://vk.com/sfxcreator
IconFile=путь к файлу иконки
IconIndex=индекс иконки (если exe/dll файл)
соответственно, записываем нужные данные и url файл готов, можно создать его сразу на рабочем столе (например), либо создать в папке с программой и уже к этому файлу создавать ярлык на рабочем столе

Цитата Kopejkin:
и чтобы с пиктограммкой дефолтного браузера »
Определить нужно сначала дефолтный браузер
Не особо вникал в этот вопрос (правильное ли это определение или нет):
Код: Выделить весь код
ReadRegStr $1 HKCR "http\DefaultIcon" ""
WriteINIStr "$DESKTOP\TEST.url" "InternetShortcut" "URL" "http://vk.com/sfxcreator"
WriteINIStr "$DESKTOP\TEST.url" "InternetShortcut" "IconFile" "$1"
проверку на отсутствие записи и запись другого значка, сами уже сделаете, как нужно
На примере Firefox - там иконка html-файла (значение параметра путь к firefox.exe и с индексом 1, firefox.exe,1)
Забегая вперёд и включая вангу, предположу возникновение вопроса о том, как отсечь с конца строки символ запятой вместе с индексом иконки
Код: Выделить весь код
!include "Logiclib.nsh" 
!include "StrFunc.nsh"
${StrLoc}
Код: Выделить весь код
ReadRegStr $1 HKCR "http\DefaultIcon" ""
${StrLoc} $0 "$1" "," "<" ; получаем в $0 количество символов после знака запятой
 ${If} $0 != "" ; если $0 = '' (пустое значение), значит символа запятой нет, соответственно, отсекать символы не нужно
 IntOp $0 $0 + 1 ; к количеству символов после запятой прибавляем 1, получаем общее количество символов (индекс+символ запятой) которое мы будем отрезать с конца строки
 StrCpy $1 $1 -$0 ; отрезаем $0 символов с конца строки
 ${EndIf}
WriteINIStr "$DESKTOP\TEST.url" "InternetShortcut" "URL" "http://vk.com/sfxcreator"
WriteINIStr "$DESKTOP\TEST.url" "InternetShortcut" "IconFile" "$1"

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:37, 02-06-2015 | #1650