PDA

Показать полную графическую версию : Руководство по созданию аддонов (текущая версия)


Страниц : 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21

Black Babay
29-07-2008, 11:26
Целевой каталог для удаления ярлыка прописывается в [Strings] »
Спасибо! Пошел пробовать...

Black Babay
29-07-2008, 13:05
jameszero, проверил. Большое спасибо, все работает. Если не затруднит посмотрите пожалуйста прилагаемый INF на предмет недочетов.


[Version]
Signature="$Windows NT$"
AdvancedINF=2.5

[Optional Components]
Starter

[Starter]
OptionDesc =%PROG_NAME%
Modes =0,1,2,3
AddReg =PROG.AddReg
ProfileItems =PROG.AddShortcut, PROG.AddShortQuick, PROG.AddShortQuickDU
Uninstall =mUninst.Uninstall

[DefaultInstall]
OptionDesc =%PROG_NAME%
Modes =0,1,2,3
AddReg =PROG.AddReg
ProfileItems =PROG.AddShortcut, PROG.AddShortQuick, PROG.AddShortQuickDU
Uninstall =mUninst.Uninstall

[Uninstall]
BeginPrompt =BeginUnInsPrompt
RunPreSetupCommands =Close.Prog:1
RunPostSetupCommands =Dir.Delete
EndPrompt =EndUnInsPrompt
DelFiles =PNF.File
DelReg =PROG.DelReg
ProfileItems =PROG.DelShortcut, PROG.DelShortcutQuick, PROG.DelShortcutQuickDU

[BeginUnInsPrompt]
Title =Деинсталляция %PROG_NAME%
Prompt =Вы действительно хотите удалить %PROG_NAME% и все компоненты программы?
ButtonType =YESNO

[Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%
ping -n 3 127.0.0.1

[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%

[EndUnInsPrompt]
Prompt =Программа %PROG_NAME% удалена.

[PROG.AddReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","Publisher",,"%PROG_MADE%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","URLInfoAbout",,"%PROG_URL%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","UninstallString",,"rundll32.exe advpack.dll,LaunchINFSection %17%\%PROG_INF%,Uninstall"

[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon"

[PROG.AddShortcut]
Name =%SRTC_NAME%
CmdLine =16422,%PROG_DIR%,%PROG_1%
WorkingDir =16422,%PROG_DIR%
SubDir =%PROG_SDIR%
InfoTip =%PROG_INFO%

[PROG.AddShortQuick]
Name =%SRTC_NAME%,0x00000001
CmdLine =16422,%PROG_DIR%,%PROG_1%
WorkingDir =16422,%PROG_DIR%
SubDir =%PROG_SDIR2%
InfoTip =%PROG_INFO%

[PROG.AddShortQuickDU]
Name =%SRTC_NAME%,0x00000001
CmdLine =16422,%PROG_DIR%,%PROG_1%
WorkingDir =16422,%PROG_DIR%
SubDir =%PROG_SDIR3%
InfoTip =%PROG_INFO%

[PROG.DelShortcut]
Name =%SRTC_NAME%,0x00000002
SubDir =%PROG_SDIR%

[PROG.DelShortcutQuick]
Name =%SRTC_NAME%,0x00000003
SubDir =%PROG_SDIR2%

[PROG.DelShortcutQuickDU]
Name =%SRTC_NAME%,0x00000003
SubDir =%PROG_SDIR3%


[Strings]
PROG_DIR ="Starter"
PROG_NAME ="CodeStuff Starter 5.6.2.8"
SRTC_NAME ="Starter"
PROG_VERS ="5.6.2.8"
PROG_MADE ="CodeStuff"
PROG_URL ="http://codestuff.tripod.com/products_starter.html"
PROG_INF ="Starter.inf"
PROG_1 =Starter.exe
PROG_2 =Starter
PROG_SDIR ="Утилиты\Starter"
PROG_SDIR2 ="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_SDIR3 ="..\..\..\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_INFO ="Менеджер автозагрузки, диспетчер задач и служб"

jameszero
29-07-2008, 13:25
Black Babay
Я недоглядел и ошибка перекочевала в руководство :)
Вместо:
Uninstall =mUninst.Uninstall

Нужно:
Uninstall =Uninstall
Для не SYSOC аддонов эта строчка вообще не нужна ни в секции [Starter], ни в секции [DefaultInstall]

Кстати, если аддон не SYSOC, то можно полностью удалить следующий код:

[Optional Components]
Starter

[Starter]
OptionDesc =%PROG_NAME%
Modes =0,1,2,3
AddReg =PROG.AddReg
ProfileItems =PROG.AddShortcut, PROG.AddShortQuick, PROG.AddShortQuickDU
Uninstall =mUninst.Uninstall

и из секции [DefaultInstall] следующий:
OptionDesc =%PROG_NAME%
Modes =0,1,2,3

В секции [Close.Prog] можно удалить TASKKILL /F /IM %PROG_1%
Во первых, достаточно второй строчки, а во вторых, TASKKILL нет в HOME Edition и деинсталлятор непременно ругнётся.

В остальном вроде замечаний нет.

DyadyaGenya
29-07-2008, 13:38
volk1234, по поводу иконок, хотелось бы все таки знать откуда беруться те стандартные, хотя сегодня ноччю нашел ответ на свой вопрос с примером можно ли другие иконки прописать, пишут что можно так нанпример: IconIndex = *, ..\mqutil.dll, 3124 правда ещё не пробовал, только читал.
Успел попробовать несколько новых DirIds, случайно нашел, причом часть папок упоминается и в главном списке приведенном на сайте, но эти тоже работают, там ещё куча таких диридсов, токо не успел проверить да и не понял куда они указывают
проверенные:
21773 C:\Documents and Settings\allusers\Мои документы\Моя музыка
22542 C:\Documents and Settings\allusers\Мои документы\Мои видеозаписи
22030 C:\Documents and Settings\defaltusers\Мои документы\Мои видеозаписи
32528 defaltuser\Рабочий стол - только почему то папка там создается, если указать путь для копирования, а ярлык если пробуешь, вместо ..\..\Рабочий стол, не создается, если есть мысли по этому поводу, то хотелось бы понять в чом разница?
22037 шаблоны
22063 C:\Documents and Settings\All Users\Главное Меню\Программы\Администрирование\
22575 тоже
22072 C:\WINDOWS\Resources
22584 тоже
22061 C:\Documents and Settings\All Users\Шаблоны


не проверенные:
11 ===> system directory (%windir%\system on Win95, %windir%\system32 on NT)
; 12 ===> drivers directory (%windir%\system32\drivers on NT)
хотя эти 2 в основном списке есть :) просто привожу цитату как в документе, ниже ещё будут повторения :)
; 32768 ===> inetsrv
; 32769 ===> inetpub\ftproot
; 32770 ===> inetpub\wwwroot
; 32771 ===> inetpub\iissamples
; 32773 ===> inetpub
; 32778 ===> WinDir\Java\TrustLib
; 32800 ===> MachineName
; 32801 ===> Upgrade type
; 33000 ===> (iusr_)
; 33001 ===> (iwam_)
; 33002 ===> (www anonymous name)
; 33003 ===> (ftp anonymous name)
; 33004 ===> iwam_ for removal
; 33005 ===> iusr_www for removal
; 33006 ===> iusr_ftp for removal
; 34000 ===> \i386, \Nec98
; 34001 ===> htmla localhost link
; 34100 ===> Temp SSE Variable
; 34101 ===> Temp Debug Variable
-----------------------------------------
; 10 ===> Windows directory.
; 18 ===> Windows\help directory (%windir%)
; 20 ===> windows\fonts directory
; 11 ===> system directory (%windir%\system on Win95, %windir%\system32 on NT)
; 12 ===> drivers directory (%windir%\system32\drivers on NT)
; 32768 ===> inetsrv
; 32769 ===> inetpub\ftproot
; 32770 ===> inetpub\wwwroot
; 32771 ===> inetpub\iissamples
; 32772 ===> inetpub\scripts
; 32773 ===> inetpub
; 32774 ===> Old inetsrv dir
; 32775 ===> Old m_csPathOldPWSFiles
; 32776 ===> Old m_csPathOldPWSSystemFiles
; 32777 ===> Program Files
; 32778 ===> WinDir\Java\TrustLib
; 32779 ===> WebPub
-----------------------------------------------
[MSIExploreDestinationSection]
49000=MSIExploreLDIDSection
49050=QuickLinksLDIDSection
49060=OldIELinksLDIDSection
49090=FavoriteLDIDSection
49100=PersonalLDIDSection

[MSIExploreDestinationSecWin]
49000,49010,49020,49030=MSIExploreLDIDSection
49050=QuickLinksLDIDSection
49060=OldIELinksLDIDSection
49090=FavoriteLDIDSection
49080=StartUpLDIDSection
49100=PersonalLDIDSection

[QuickLinkDestinationSection]
49000,49010,49020,49030=MSIExploreLDIDSection
--------------------------
34101=iis_ftp component
33005
33006
33004
-------------------------------
4000=LogType
4001=%WinDir%\System32\LogFiles
36883=%WinDir%\System32\inetsrv
36917=
-------------------
Msmq1ExchConnFiles = 97010
Msmq1Files = 97001
Msmq1SetupFiles = 97050
Msmq1SDK_DebugBinFiles= 97055


и ещё, всстретил в синтаксисе перед папкой значок @, к чему он? как пример:
InfoTip = "@%16422%
хотя это не очень удачный пример, просто сходу ничо другого не нашел

DyadyaGenya
29-07-2008, 15:01
volk1234, кстати, встретил ещё таку команду:
Error Control = 0 or 1
похоже можно контролировать процес установки, и с помощью его пропускать неправильный аддон во время инсталяции оси, чтоб не зависал и неждал команду типа жми сюда и процес пойдет дальше
на форуме нашел толлько подобное упоминание для драйверов, и то не так пишеться и флаги не такие

volk1234
29-07-2008, 19:43
DyadyaGenya
Дайте ссылку на источник пожалуйста.
В том числе и на источник про замену иконок в System components.

Между прочим касательно вашего предложения про winnt.sif нашел в Руководстве:



8. Установка дополнительных компонентов ОС (sysoc.inf) С помощью sysoc.inf менеджер установки строит список файлов для установки этих компонентов. Затем этот список сверяется с файлом unattend.txt (winnt.sif) если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов..

DyadyaGenya
29-07-2008, 19:59
volk1234, вот это наверно сглупил, сами доки вытянул, отдельным документом сделал цитаты, а ссылку дома оставил, думаю приду домой, в кеше остались, скину. Если память не изменяет, то почти все в базе знаний майкрософта, токо англицкая

volk1234, одну нашел по памяти http://msdn.microsoft.com/en-us/library/ms912407.aspx

DyadyaGenya
30-07-2008, 17:15
Между прочим касательно вашего предложения про winnt.sif нашел в Руководстве: »
ну чтож, значит я давно читал все руководство, тогда наверно не заметил, а сейчас пытался найти новшества

и ещё раз повторю просьбу, подскажи пожалуйста, из какого файла взялись картинки для отображения иконок в компонентах, как я понимаю это какой то длл

volk1234
30-07-2008, 23:59
подскажи пожалуйста, из какого файла взялись картинки для отображения иконок в компонентах, как я понимаю это какой то длл »
Порылся Restorator'ом и как и следовало ожидать нашел иконки в файле setupapi.dll

кстати, обнаружил что в спске Gosh не все иконки, 36 штук еще дополнительных :)

DyadyaGenya
31-07-2008, 13:17
volk1234, и хотел я его глянуть, но увидел что иконок больше, решил время не тратить, искал где есть 61 иконка :) ResHacker вручную перерывал :)

странно, пересмотрел setupapi.dll там таких иконок нет, и у меня их там аж 145
этот длл находиться в C:\WINDOWS\system32\dllcache\ или просто в C:\WINDOWS\system32\ ? хотя у меня оба файла одинаковые

нашел, они в bitmap лежат
кстати, обнаружил что в спске Gosh не все иконки, 36 штук еще дополнительных »
нету видимо потому что они там не прописаны, по крайней мере если прописать номер больше чем из списка, то в списке компонентов светиться одна и та же иконка

volk1234
01-08-2008, 00:40
РУКОВОДСТВО (http://oszone.net/6946) на сайте обновлено

31.07.2008 версия статьи 1.36

+ Дополнено описание лог файлов - Приложение 6.
+ Дополнен (доведен до логического завершения) подраздел 3.Создание ярлыков в Приложении 2.
+ Флаг удаления ярлыков в подразделе 4.Разное в Приложении 2.
+ "Копирование одного и того же файла в разные папки" подраздел 4.Разное в Приложении 2.
* Аддоны используещие Sysoc - выбор установливаемых компонентов.
* Приложение 5. Указан файл с иконками Optional Components.
[hr]

Не смотря на то что Vadikan включает его в оффлайн версию сайта, подумываю сделать его в chm- формате дополнительно, хотя бы чтобы подсунуть друзьям для изучения,
а то они отлынивают и говорят, что на сайте слишком много информации. Ну в Word'е руководство занимает 50 страниц :)
[hr]
Хочу сказать Спасибо jameszero, Black Babay, Stanner за поднятую тему и ценные советы. DyadyaGenya тоже заслужит свою первую благодарность если выложит обещанные ссылки :)

Vadikan
01-08-2008, 02:11
Не смотря на то что Vadikan включает его в оффлайн версию сайта, подумываю сделать его в chm- формате дополнительно, хотя бы чтобы подсунуть друзьям для изучения, »
Я не возражаю. Мне так даже будет проще включать обновленную версию в учебник, хотя внешние ссылки на внутренние все равно нужно будет править и еще кое-какие мелочи.

P.S. Я прошелся по измененным секциям - поправил грамматику и пунктуацию, где увидел :) Там опять появились INF- скрипты. Лучше придерживаться одного термина - INF-файл.

Stanner
01-08-2008, 18:54
Многие любят, когда в "Установке и удалении программ" название программы высвечивается сразу вместе с версией.
Если значение версии добавить в PROG_NAME, то это приведет к размножению пунктов, связанных с программой.
Мне кажется, в таком случае надо использовать такую строку в inf:
HKLM,"%SWUninstall%\%PROG_NAME%_addon","DisplayName",,"%PROG_NAME% v%PROG_VERS%"

P.S. Кстати, в руководстве потерялись кавычки перед %PROG_NAME%: ...,"DisplayName",,%PROG_NAME%"

volk1234
01-08-2008, 21:11
то это приведет к размножению пунктов, связанных с программой. »

это как ?

maik5
01-08-2008, 22:00
P.S. Кстати, в руководстве потерялись кавычки перед %PROG_NAME%: ...,"DisplayName",,%PROG_NAME%" »
Этих кавычек во многих аддонах не хватает и ваши не исключение :), только у gora эта кавычка везде стоит.

volk1234
01-08-2008, 23:54
Этих кавычек во многих аддонах не хватает и ваши не исключение »

Исправлено.

Stanner
04-08-2008, 19:08
это как ? »
Допустим, для Prog_name="XnView 1.94.1" будет создан раздел удаления "XnView 1.94.1_addon". При обновлении программы путем установки обновленного "XnView 1.94.2" будет создан еще один раздел - "XnView 1.94.2_addon" и обе записи будут отображаться в "Установке и удалении программ".
Понятно, что корректно будет сначала удалить старый, но можно просто использовать Prog_name="XnView", а в DisplayName записывать "%PROG_NAME% v%PROG_VERS%" - и проблема точно не возникнет.

А насчет кавычек - исправлю и у себя, сам только заметил. Пустячок, но лучше исправить.

Stanner
06-08-2008, 18:02
Я считаю, что после удаления программы ее inf-файл тоже не нужен и предлагаю сделать так:

[Del.PNF]
%PROG_PNF%
%PROG_INF%

Vadikan
07-08-2008, 09:01
volk1234, мне тут внимательный читатель прислал список грамматических и орфографических ошибок в руководстве. Исправь, плиз, когда будет время.

В разделе "Эксперту\Руководство по созданию аддонов для набора обновлений UpdatePack-RUS" во втором пункте содержания (и дальше в заголовке) ошибка в слове "пользоватся" - нужен "ь"; во втором пункте третьего раздела содержания слово "деинсталяции", скорее всего, пишется с двумя "л"(также встречается и далее). В теме "Раздел I. Общие положения" последнее слово первого абзаца "подхватыватся" нужно писать с "ь"; во втором пункте раздела "Важно!" не хватает запятой после "дело" и после "дату"; в последнем абзаце темы опечатка "наименованиее". В теме "Обработка аддона скриптом Update Pack" в пятом абзаце снизу слово "вложеной" нужно писать с двумя "н". В теме "Аддоны, использующие SYSOC" в четвертом абзаце не хватает запятой после "программы"; в третьем пункте "Важно" снизу опечатка "присутсвтует". Во втором абзаце темы "Аддоны, изменяющие дистрибутив" не хватает запятой после "например" в скобках. В теме "Раздел III. Примеры и приложения" слово "мучать" следует писать через "и
". В теме "Пример 2. учебный аддон Puntoswitcher" в третьем абзаце опечатка "дальшейшем"; в этой же теме где-то в середине:) в "Следущие" не хватает "ю". В теме "Пример 3. Разбор конструктора K-lite codek pack" в первом абзаце "переименованый" нужно писать с двумя "н"; в подтеме "Klite.inf" "коментарии" нужно писать с двумя "м". В теме "2. Методы деинсталяции" во втором абзаце опечатка "сеции" (и "деинсталяцию"); в разделе "Важно" этой темы после "папку" нужна запятая. В первом предложении темы "Способ 2. "Радикальный"" слово "внутреняя" нужно с двумя "н"; в третьем абзаце снизу этой темы "созданый" - с двумя "н". В пункте "Отображение и запуск файлов" темы "4. Разное" в приведенном коде "отображатся" нужен "ь"; так же в нем апплет сначала пишется с одной "п", а потом с двумя... В первом предложении темы "5.Выполнение INF-файла через Rundll32.exe" "коммандной" пишется с одной "м"; во втором коде опечатка "перезгрузку"; опечатка "распрастраненный"; и в последнем предложении э
той темы "отображатся" - нет "ь". В теме "Приложение 3. Файл Txtsetup.sif" приблизительно в пятом абзаце после "параметры" нужна запятая. В теме "Приложение 5. Секция [Optional Components]" во втором абзаце не хватает "ь" в "выполнятся" и ошибка в "игнорированны" - лишняя "н"; пятью абзацами ниже - "отображатся" нужно с "ь". Во втором абзаце после списка из 61 наименования опечатка "устанваливаемый", а в следующем абзаце нет "ь" в "ссылатся". В теме " Log-файлы, создаваемые в процессе установки" опечатка "Отслежиеает" в первом абзаце. В теме "Благодарности" опечатка "тайже", не хватает запятой после "тех" сразу после списка "благодарных".
:)
А мне он прислал по всей оффлайн версии... :)

DJ Electronic
08-08-2008, 09:28
А почему при установке через секцию defaultinstall простым кликом по inf выбрав установить не отрабатывает секция запуска файлов? и ещё в SP3 не работает секция регистрации библиотек, как будто её совсем убрали




© OSzone.net 2001-2012