PDA

Показать полную графическую версию : Несколько вопросов по .INF


Страниц : 1 [2] 3 4

dimich22
28-04-2007, 13:44
Petya V4sechkin, спасибо за наводку. Библиотека зарегистрировалась как нужно. Но для этого пришлось не два раза, а три обращаться к runonce. М.б. это зависит от количества аддонов, но я кроме reqired_dll's и своего ничего не ставил. Если прописывать два раза, то второй запуск происходит тоже на 13 минуте, но несколько позже первого - успевают поставиться некоторые вещи из svcpack. Вот когда происходит третий запуск я не отследил. Видимо тоже в районе T13, но после svcpack. Если прописать 4 раза:), то вот тогда похоже, что запуск из runonce происходит при логоне. Оставил пока трехуровневую рекурсию:) Посмотрим, что будет при увеличении числа аддонов.

VitRom
28-04-2007, 21:23
Petya V4sechkin
ты просто залез в такие дебри, в которые здесь никто еще не залезал :) я это уже понял, и что придётся разбираться самому - тоже, поэтому всё, что мне теперь надо - только "нормальные" доки.
Uninstall для каждого юзера, какая в этом реальная необходимость ну... "порядок на рабочем месте", меньше бардака. :) хотя конечно же это не критично (читать буквально!) - но не больше.
Install тоже в большинстве случаев делают до первого логона в том то и дело, что это изврат! Я хочу сделать отн. универсальный дистр, с которого можно ставить то, что нужно, т.е. только "по требованию" - аналогично компонентам самой Винды, которые можно ставить/удалять многократно и в любое время.
А "до первого логона" значит, что мне надо сначала ставить систему со всеми аддонами, а потом тут же "лишние" сносить.
Вот этот бред я и хочу избежать.

Vadikan
28-04-2007, 23:30
VitRom
INF не всегда наилучший путь. Иногда имеет смысл воспользоваться установщиком типа InnoSetup. Вы же не говорите, какая у вас задача конкретно. Понятно лишь то, что вы хотите непременно решить ее при помощи INF, но почему именно так, неясно.

VitRom
29-04-2007, 00:06
Vadikan, повторюсь:
"отн. универсальный дистр, с которого..." и далее по тексту. Всё очень просто. Речь не идёт о чём-нибудь типа "аддон Фотошоп-КС" :)

Существует много программ класса "мастхэв". Одновременно верно и то, что многие из них нужны не всегда. Тот же, например, ВинДежавю - мастхэв, но всё-же кому-то ни разу в жизни не понадобится, а кому-то понадобится, но не сразу. При этом и обновлять её практически ни к чему - сам формат давно устоялся, софтина тоже стабильная. Или тулзы от Русиновича...

ИМХО программы такого рода должны быть доступны конечному юзеру дистра аналогично "компонентам" Винды. Понадобилась - "добавил компонент", и всё. Мне до сих пор не требовались "Службы печати Юникс", но я знаю, что если надо - достаточно открыть менеджер компонент и поставить галку.

При этом многие из этих прог невелики по размерам и почти не требуют инсталяции, и мне претит мысль держать каждую со своим персональным инсталятором, который может быть и в 20 раз больше самой проги, тем более когда движок для инсталяции всё равно уже есть в системе.

А просто закомментить строчку "Modes=1,2,3,4" решает проблему лишь наполовину. Да, софтина не ставится сразу, ждёт, пока не поставишь - но не каждая после установки становится доступна сразу для всех юзеров многоюзерской машины, некоторые работоспособны только под юзером, который ставил.

Vadikan
29-04-2007, 01:18
VitRom
Я понял о каких программах речь, но все равно не считаю, что проблему надо решать при помощи INF-файлов и компонентов. Есть более простое решение - $OEM$ папки или единственный SFX с такими програмами. У меня есть папка system32\MyTools, куда идут все подобные утилиты. Я просто добавляю папку в PATH и запускаю программы при нбх из командной строки. А если юзеру нужноПонадобилась - "добавил компонент", и всё. , то все сводится к добавлению ярлыка на программу. Щелкаем правой кнопкой мыши на рабочем столе - Создать - Ярлык - имяпрограммы - Ввод. Все!

P.S. Добавление папки в PATH — OSZone.net wiki (http://wiki.oszone.net/index.php/Добавление_папки_в_PATH)

jameszero
29-04-2007, 14:13
VitRom
Я хочу сделать отн. универсальный дистр, с которого можно ставить то, что нужно, т.е. только "по требованию"Реализовать это можно не только с помощью установки через менеджер компонентов Windows. Гораздо проще и правильней сделать диск, в автозапуск которого, прописать тот же BS Post Installer (http://forum.oszone.net/showthread.php?t=51853) или другую аналогичную программу. При таком способе убивается ещё один заяц - независимость от развёрнутой ОС, а в вашем варианте, универсальным диском можно будет пользоваться только на том компьютере, где установлена заточенная под него система.

VitRom
29-04-2007, 15:02
Vadikan, jameszero

Ха! Все эти варианты я тоже рассматривал.

Как неоднократно говорилось на форуме и подтверждено практикой, наличие $OEM$ отключает какой-то (не помню уже) функционал "стандартного" дистра, как и наличие "winnt.sif" с данными свыше определённого минимума (где-то я постил результат тестов) отключает, кажется, Рекавери Консоль.
Хотя для себя я тоже давно юзаю "папочку на все случаи" (только C:\SYSTEM и добавляю её первой в Path) с кучей всячины... Хотелось просто сделать ещё лучшее (да знаю, знаю, что это враг хорошего! :))

К моему стыду, до сих пор не дошли руки до БСПИ, хотя уже не раз подумывал о нём. Но всё равно недостатки у этого способа те же:
1) перегруз лишними "персональными" сетап-обертками
и/или
2) опять-таки проблема полноценной установки на "обжитую" многоюзерскую систему

Vadikan
29-04-2007, 18:24
VitRomКак неоднократно говорилось на форуме и подтверждено практикой, наличие $OEM$ отключает какой-то (не помню уже) функционал "стандартного" дистраЧто-то я не припоминаю такого... Ссылки хотелось бы увидеть. как и наличие "winnt.sif" с данными свыше определённого минимума Это действительно так.перегруз лишними "персональными" сетап-оберткамиГм... Это проще, чем INF.опять-таки проблема полноценной установки на "обжитую" многоюзерскую системуЕрунда. Пусть вызывают ту же оболочку и из нее устанавливают ПО - просто скопируйте ее на жесткий диск со всем содержимым тогда вместо использования с CD.

В общем, это все оффтоп. Если очень хочется INF, то вперед :)

Petya V4sechkin
29-04-2007, 18:53
Vadikan
Что-то я не припоминаю такого... Ссылки хотелось бы увидеть.Имеется в виду, что при наличии в файле ответов OEMPreinstall=Yes не подхватывается по F6 дискета с драйверами для MassStorage-контроллеров. Конечно, их всегда можно интегрировать в CD, но дистрибутив все-таки становится менее универсальным (скажем, если отдаешь свой диск знакомому, не хочется потом слышать обвинения в криворукости - вот, мол, дрова по F6 не хавает).
Сорри за оффтоп.

VitRom
30-04-2007, 03:19
Vadikan, хочется, хочется ИНФ! но РТФМ-ов нет!
А что "Это проще, чем" - то да, проще... До того момента когда начинаешь втискивать это в компакт. :wacko:

ЗЫ. Отец (пингвинятник) и сын:
- Пап, как дискету отформатировать?
- РТФМ!
- [вздыхая] Ман - что? ;)

Master of Magic
08-05-2007, 16:54
Имеется в виду, что при наличии в файле ответов OEMPreinstall=Yes не подхватывается по F6 дискета с драйверами для MassStorage-контроллеров. Конечно, их всегда можно интегрировать в CD, но дистрибутив все-таки становится менее универсальным (скажем, если отдаешь свой диск знакомому, не хочется потом слышать обвинения в криворукости - вот, мол, дрова по F6 не хавает).
как и наличие "winnt.sif" с данными свыше определённого минимума (где-то я постил результат тестов) отключает, кажется, Рекавери Консоль.
Обе проблемы решается созданием разных файлов setupldr.bin.
Вы лучше объясните как пользоваться PerUserInstall?:
For each ActiveSetup enabled component, this option defines the component's states, version, locale and per-user stubpath under HKLM\Software\microsoft\Active Setup\Installed сomponents\GUID registry key. When the user first time logon after installing the component, the commands pointed by StubPath may be executed if this version of component per-user stub has not been run for the user.

Syntax:

[InstallSection]
PerUserInstall=PerUserInstall
[PerUserInstall]
DisplayName=%WebInteg%
Version=5.0.0311.0
IsInstalled=1
ComponentID=IE4Shell_WIN
GUID={89820200-ECBD-11cf-8B85-00AA005B4395}
Locale=en
StubPath=rundll32.exe advpack.dll,LaunchINFSectionEx %11%\myinst.inf,UserStub,,36

[Strings]
WebInteg = "MyComp Update"

Note:

The StubPath data can be any command line launched by CreateProcess().

Master of Magic
15-05-2007, 13:09
Как запускать через inf - RunOnce?

Angel_19
17-05-2007, 21:44
INF файл можно установить из командной строки так:
%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 Путь к inf файлу

К примеру в Inf файле есть также секция деинсталяции, можно ли выполнить эту секцию (деинсталацию) также из командной строки?

Master of Magic
24-05-2007, 22:38
[DestinationDirs]
D6.Copy=53, Главное меню\Программы\Автозагрузка
Как грамотно записать русский язык в inf, у меня этот код не работает?

jameszero
24-05-2007, 22:55
Master of Magic
Так сработает:
[DestinationDirs]
D6.Copy=53,"Главное меню\Программы\Автозагрузка"

Master of Magic
25-05-2007, 14:29
Выложил сюда, мож кому пригодится:
Value Destination Directory
01 SourceDrive:\pathname (the directory from which the INF file was installed)
10 Windows directory;This is equivalent to %windir%.
11 System directory;This is equivalent to %windir%\system32 for NT-based systems, and to %windir%\system for Windows 9x/Me.
12 Drivers directory;This is equivalent to %windir%\system32\drivers for NT-based platforms, and to %windir%\system\IoSubsys on Windows 9x/Me platforms.
17 INF file directory
18 Help directory
20 Fonts directory
21 Viewers directory
23 Color directory (ICM) (not used for installing printer drivers)
24 Root directory of the system disk.;This is the root directory of the disk on which Windows files are installed. For example, if dirid 10 is "C:\winnt", then dirid 24 is "C:\".
25 Shared directory
30 Root directory of the boot disk, also known as "ARC system partition," for NT-based systems. (This might or might not be the same directory as the one represented by dirid 24.)
50 System directory for NT-based operating systems; This is equivalent to %windir%\system (NT-based systems only).
51 Spool directory (not used for installing printer drivers − see Printer Dirids)
52 Spool drivers directory (not used for installing printer drivers)
53 User profile directory
54 Directory where ntldr.exe and osloader.exe are located (NT-based systems only)
55 Print processors directory (not used for installing printer drivers)
-1 Absolute path

Dirid values from 16384 through 32767 are reserved for special shell folders. The following table shows dirid values for these folders.
Value Shell Special Folder
16406 All Users\Start Menu
16407 All Users\Start Menu\Programs
16408 All Users\Start Menu\Programs\Startup
16409 All Users\Desktop
16415 All Users\Favorites
16419 All Users\Application Data
16422 Program Files
16425 %WinDir%\System32 (valid for Microsoft Win32 user-mode applications running under Windows on Windows (WOW64))
16426 Program Files (valid for Win32 user-mode applications running under WOW64)
16427 Program Files\Common
16428 Program Files\Common (valid for Win32 user-mode applications running under WOW64)
16429 All Users\Templates
16430 All Users\Documents

dimich22
25-05-2007, 14:48
Вообще-то, если сначала заглянуть в тему "Авторам аддонов" и перейти по предложенным ссылкам, то эти переменные там представлены.

Master of Magic
25-05-2007, 14:51
dimich22 если сначала заглянуть в тему "Авторам аддонов" и перейти по предложенным ссылкам, то этих переменных там на русском нет, а на английском есть, не обратил внимания,сорри, попрошу, что бы посты удалили.

dimich22
25-05-2007, 15:04
Да, на русском нет. С другой стороны, может и стоит такого рода инфу поместить в более доступное место, чтобы не искать.

DJ Electronic
27-05-2007, 11:49
как сделать в inf так чтобы при удалении из установки и удалении програм аддона вначале закрывало процесс а потом деинсталлировало уже корректно?




© OSzone.net 2001-2012