|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Скрипты Inno Setup. Помощь и советы [часть 5]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Отправлено: 03:49, 21-05-2012 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Всем привет. На днях нашел тут код как Закрепить значок на панели задач в Win7. Все получилось, кроме одного - при наличии на панели уже такого ярлыка - создается ярлык типа MPC-BE(2).lnk;
Вот сам код const installer_mutex = 'mpcbe_setup_mutex'; LOAD_LIBRARY_AS_DATAFILE = $2; function LoadLibraryEx(lpFileName: String; hFile: THandle; dwFlags: DWORD): THandle; external 'LoadLibraryExW@kernel32.dll stdcall'; function LoadString(hInstance: THandle; uID: SmallInt; var lpBuffer: Char; nBufferMax: Integer): Integer; external 'LoadStringW@user32.dll stdcall'; // thank for code to "El Sanchez" from forum.oszone.net procedure PinToTaskbar(Filename: String; IsPin: Boolean); var hInst: THandle; buf: array [0..255] of char; i, Res: Integer; strVerb: String; objShell, colVerbs: Variant; begin if not FileExists(Filename) then Exit; if IsPin then Res := 5386 else Res := 5387; begin hInst := LoadLibraryEx(ExpandConstant('{sys}\shell32.dll'), 0, LOAD_LIBRARY_AS_DATAFILE); if hInst <> 0 then try for i := 0 to LoadString(hInst, Res, buf[0], 255)-1 do strVerb := strVerb + Buf[i]; try objShell := CreateOleObject('Shell.Application'); except ShowExceptionMessage; Exit; end; colVerbs := objShell.Namespace(ExtractFileDir(Filename)).ParseName(ExtractFileName(Filename)).Verbs; for i := colVerbs.Count downto 1 do if colVerbs.Item[i].Name = strVerb then begin colVerbs.Item[i].DoIt; Break; end; finally FreeDLL(hInst); end; end; end; Получается что задать вручную имя ярлыка в этом случае я немогу. Подскажите гуру Inno |
Отправлено: 15:51, 11-09-2012 | #891 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Системные переменные Переменная - Path, значение - %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem появилась необходимость к значению %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem добавить C:\Program Files\Progs В идеале при установке должно получится так %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Progs как это сделать через инно? в секции [setup] нашёл ChangesEnvironment=true только мне это мало о чём говорит. |
|
Последний раз редактировалось SatHan, 11-09-2012 в 16:34. Отправлено: 16:01, 11-09-2012 | #892 |
Ветеран Сообщения: 1264
|
Профиль | Отправить PM | Цитировать Цитата SatHan:
Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: expandsz; ValueName: Path; ValueData: {olddata};{app}; Flags: noerror Цитата SatHan:
|
||
Отправлено: 17:42, 11-09-2012 | #893 |
Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать Господа, может просветите)))
При работе с ReDrawText как в скрипте прописать, чтоб работало на разных страницах, а не на одной? Или на одной, но в разных местах... Или как по другому цвет нужных слов на разных страницах менять? |
Последний раз редактировалось MogilShik2007, 11-09-2012 в 18:21. Отправлено: 18:01, 11-09-2012 | #894 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать El Sanchez,
блин чуть мозг себе не спалил нафиг но допер таки как использовать procedure InitializeWizard(); var iFile: TIniFile; i, j: Integer; res: String; begin iFile := ParseIniFile('C:\setup\Selfish.ini'); for i := 0 to GetArrayLength(iFile)-1 do begin res := res + '[' + iFile[i].Section + ']' + #13#10; for j := 0 to GetArrayLength(iFile[i].Entries)-1 do res := res + iFile[i].Entries[j].Name + '=' + iFile[i].Entries[j].Value + #13#10; end; MsgBox(res, mbInformation, MB_OK); //// первая 2-ка - номер секции (отсчёт от нуля) вторая 2-ка - номер ключа секциии(отсчёт от нуля) Variable := iFile[2].Entries[2].Value = '1' /// отсчёт от нуля if Variable = True then MsgBox('ок', mbInformation, MB_OK); end; Цитата El Sanchez:
конечно смысла считывать из одной секции значение одного ключа - слишком, но для длинных ini этот код себя 120 раз оправдает ============================================================= Цитата Aleksoid1978:
на панели задач ярлыки - только иконки если ты имеешь в виду имя файла, то файл(вместе с путём к нему) к которому ты хочешь протянуть ярлык указывается в первом входном параметре функции PinToTaskbar |
||
Последний раз редактировалось Johny777, 11-09-2012 в 20:07. Отправлено: 18:43, 11-09-2012 | #895 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать El Sanchez, SatHan, я тоже поначалу так пробовал, полная фигня получается
Теперь делаю через стороннюю утилитку pathman |
------- Отправлено: 18:48, 11-09-2012 | #896 |
Ветеран Сообщения: 1264
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
Цитата R.i.m.s.k.y.:
|
||
Отправлено: 23:14, 11-09-2012 | #897 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
пока не подумал, что не подходит тк у тебя свой тип - TIniFile и что нужна самописная функция поиска индекса Оказалось в правильном направлении подумал (радует ) Цитата MogilShik2007:
ты же судя по коду уже сделал разноцветный текст на первой странице вот держи у меня есть другой пример отрисовки текста http://sendfile.su/668402 попробуй с ним используй функцию function WriteText(s: string; Left, Top, Right: integer; Parent: TWinControl): TLabelString; .............название(твой текст; слева, сверху, ширина; родитель(например WizardForm.WelcomePage): Цитата MogilShik2007:
поиграйся с настройкой - узнаешь вот держи набор китайских библиотек с примерами http://sendfile.su/668398 |
|||
Последний раз редактировалось Johny777, 12-09-2012 в 02:39. Отправлено: 01:22, 12-09-2012 | #898 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Johny777,
Цитата Johny777:
|
|
Отправлено: 01:58, 12-09-2012 | #899 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Цитата Aleksoid1978:
смотри скрин у значков в панели задач (куда функция El Sanchez-а их закрепляет) нет имени |
|
Отправлено: 02:14, 12-09-2012 | #900 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|