Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Операционные системы »   Windows NT/2K/XP »   nLite x64 OS
RSS

nLite x64 OS

Windows XP Professional x64 Edition discussion.

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Модератор: wsxПечать
 
semiono
Долгожитель форума

semiono
Откуда: Арзамас
Всего сообщений: 383
Рейтинг пользователя: 2





Дата регистрации на форуме:
2 сен. 2006
Release: nLite-1.3.installer.exe.
Target = Windows XP Professional x64 Edition SP:1 - 5.2.3790.1830 - English (United States)

Вопросы:
1. Устанавливаю, работает нормально.
Я изменил расположение директории Program Files на \Winnt\WinSxS\Apps32
Всё прекрасно туда и установилось, но в корне диска при первой загрузке создаются
папки 'Program Files', 'Program Files(x64)'. Собственно \Winnt\WinSxS\Apps32(x64)
так же создаётся с контентом. Папки в корне описанные выше пустые, понятное дело
это какие-то недоработки nLite с реестром...
Теперь вопрос, как бы сделать скрипт, чтоб он удалял это всё хозяйство, так как в nLite
есть возможность выполнять Runonce комманды? Я практически не знаком с vbs/js
написанием... кстати батники... а как кстати батник или любой другой файл передать
инсталлеру, чтоб он его копировал в папки windows???
Есть такое наблюдение, у меня calc.exe запустился, через runonce - первый раз
без setup [calc.exe] и я видел, что cmd console висела и ждала его. Ну это говорит
кароче о том, что cmd всёж запускает runONCE. Однако CMD передать параметры
извне - это совсем задача неразрешимая, я уже об этом давно ищу ответ??
2. При помощи nLite можно добавить, некоторые свои приложения, ну типа WinRar.
На сайте nliteos был такой дистрибутивчег и многие другие, я заглянул в INF
там практически никакой информации предустановки нет, только всякие заголовочные
прописи... Интересно как инсталлер его ставит? А вообще баг с этим и связан,
всё как уже и говорил установилось куда мне и было надо, кроме этого аддона.
WinRar стал сюда C:\Program Files(x86)
Теперь я думаю либо всякие ~HIV.INF перелапатить, либо понять что можно сделать с winrar.inf
?
3.В WinXPSP1 можно было заменить bootscreen, причём запросто. :)
В SP2 уже это дело прикрыли, я нашёл выход такой, что просто вставил 640x480.bmp - пустой
бланк белого цвета. При загрузке он чёрный =) и хорошо что progress bar через него "крутится".
Ато я не люблю эти яркие логотипы майкрософт.
В x64WinXP уже файл ntoskrnl.exe проверяется на CRC, я бувально завёл его тем что
в одном месте добавил бит, в другом отнял - иначе никак (
Интересно, если ресурс вынуть, можно ли ухитрится вставить чтонибудь для корркции суммы!?
Да в SP2 между прочим можно было просто ресурс удалить и тоже работало!
Но самое отвратительное, что не могу ResHacker найти 64битный!
Вот это покрутил "XN Resource Editor" - то ли глюковатый, то ли я не понял его,
кароч export BMP есть import не понятен, с ресурсами я не очень в теме, а картинку имхо не вставляет!
Ещё есть у меня такой тулс CFF Explorer, но тоже это вам не ResHacker который загнулся ещё в 2002
году, но все его любят...
Нужны инструментс x64!
:cool:

Из приятного, могу сказать, что msstyles запросто ставятся с windows. Если красота кому-то пофиг,
то здесь выбор большой - можно сделать страшный десктоп ; :)
:) хых!

Заранее всем спасибо за любые подсказки и советы!

---
a peoples must know what is cost an opium for the race?
semiono
Долгожитель форума

semiono
Откуда: Арзамас
Всего сообщений: 383
Рейтинг пользователя: 2





Дата регистрации на форуме:
2 сен. 2006
Вот как можно зделать "плагин" для утилиты nLite, впоследствии который надо добавлять в секцию hotfixes, как обычный хотфикс... На примере, пэйджера миранда создадим инсталлер, с помощью кампилера InnoSetup. Вот его код, который можно написать, хоть в блокноте, хоть в окне InnoSetup, неважно и просто скампилировать.
-------------------------------------------------------------------------------begin
[Setup]
AppName=Miranda
AppVerName=Miranda 0.7.0.27
DefaultDirName={pf}\Miranda
DirExistsWarning=no
DisableDirPage=no
DisableProgramGroupPage=yes
ArchitecturesInstallIn64BitMode=x64
Compression=lzma
SolidCompression=yes
OutputDir=D:\
OutputBaseFilename=Miranda
TouchDate=2001-01-01
TouchTime=00:00
MinVersion=4.1,4.0
VersionInfoCompany=Semiono
VersionInfoCopyright=© 2001-2005
VersionInfoDescription=Miranda
VersionInfoTextVersion=0.7.0.27
VersionInfoVersion=0.7.0.27
Uninstallable=no
SetupIconFile=K:\-\Projects\blockdevice.ico

[Dirs]
Name: "{app}"; Attribs: readonly; Flags: uninsneveruninstall; Permissions: system-full

[Files]
Source: "T:\Miranda\Icons\*"; DestDir: "{app}\Icons"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Jabber\*"; DestDir: "{app}\Jabber"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Language\*"; DestDir: "{app}\Language"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Plugins\*"; DestDir: "{app}\Plugins"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Skin\Tiger\Images\*"; DestDir: "{app}\Skin\Tiger\Images"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Skin\Tiger\Resources\*"; DestDir: "{app}\Skin\Tiger\Resources"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Skin\Tiger\*"; DestDir: "{app}\Skin\Tiger"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\tabSRMM\Saved Contact Pictures\*"; DestDir: "{app}\tabSRMM\Saved Contact Pictures"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\tabSRMM\skins\*"; DestDir: "{app}\tabSRMM\skins"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Default.dat"; DestDir: "{app}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: admins-full
Source: "T:\Miranda\desktop.ico"; DestDir: "{app}"; Attribs: hidden; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\desktop.ini"; DestDir: "{app}"; Attribs: hidden system; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\Miranda\Miranda.exe"; DestDir: "{app}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\system32\dbtool.exe"; DestDir: "{sys}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\system32\msimg32.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\system32\riched20.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\system32\wsock32.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\system32\zlib.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist touch uninsneveruninstall; Permissions: system-full
Source: "T:\system32\system.cmd"; DestDir: "{tmp}"; Flags: deleteafterinstall; Permissions: everyone-full

[Icons]
Name: "{userprograms}\Miranda"; Filename: "{app}\Miranda.exe"; Comment: "Miranda"
Name: "{userfavorites}\Miranda"; Filename: "{app}\Miranda.exe"; Comment: "Miranda"
Name: "{sendto}\Miranda"; Filename: "{app}\Miranda.exe"; Comment: "Miranda"

[Registry]
Root: HKLM; Subkey: "Software\Classes\CLSID\{{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Miranda"; ValueType: string; ValueName: ""; ValueData: ""; Flags: uninsdeletekey; Permissions: system-full
Root: HKLM; Subkey: "Software\Classes\CLSID\{{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Miranda\command"; ValueType: string; ValueName: ""; ValueData: "{app}\Miranda.exe"; Flags: uninsdeletekey; Permissions: system-full
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\Miranda.exe"; ValueType: string; ValueName: ""; ValueData: "{app}\Miranda.exe"; Flags: uninsdeletekey; Permissions: system-full
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\Miranda.exe"; ValueType: string; ValueName: "Path"; ValueData: "{app}"; Flags: uninsdeletekey; Permissions: system-full

[Run]
Filename: "{tmp}\system.cmd"; Parameters: "{app}"

[Messages]
BeveledLabel= BSD
-------------------------------------------------------------------------------end of code

Но при этом нужно подготовить включаемые файлы, часть из которых это контент собственно миранды, а часть я добавил из файлов Windows XP без которых миранда не будет работать (для надёжности :)). Файлы Windows для интеграции в дистрибутив nLite не нужны, так как известно заранее они там итак есть, поэтому их можно закоментировать. Однако полученный пакет InnoSetup можно и без nLite использовать, как обычный инсталл и в этом случае можно тогда устанавливать на любой "ветхий" релиз Windows :) Хотя предположительно библиотека wsock32.dll скорее всего для Win2003 и WinXP не есть совместимая. Поэтому везде добавлен был флаг onlyifdoesntexist чтобы не затереть имеющийся файл. Собственно данный скрипт можно сразу использовать для сборки миранды, или как шаблон для другой сборки. Нужно только изменить секции скрипта [Files], [Registry] и если они нужны вообще то ещё [Icons] и др. Здесь в заголовочной части я использовал много директив, которые тоже можно частично убрать, но проще их удалить, чем сначала искать, вдруг кому что-то нужно из этого. :)
Батник который используется в разделе [Run]
имеет такой вид:
-------------------------------- system.cmd ----------------------------------------------
echo @start %1\Miranda.exe> %SystemRoot%\system32\Miranda.cmd
-------------------------------- end of code -----------------------------------------------
он тоже вообщем-то не нужен ;-

Ярлык blockdevice.ico я взял в линуксе от KDE десктоп, поэтому такое
название хе!
Теперь когда у Нас есть инсталлер Miranda.EXE
зделаем Zip архив с такой структурой:
АРХИВ\SVCPACK\Miranda.exe
АРХИВ\ENTRIES.INI
Код файла ENTRIES.INI будет такой:
-------------------------------------------------------------------
[EditFile]
SVCPACK.INF,SetupHotfixesToRun,AddProgram
[AddProgram]
Miranda.exe /verysilent
-------------------------------------------------------------------
:beer:

ЗЫ Таким образом легко можно собрать любой софтвээ, есть только при этом две проблеммы.
1. Найти файлы приложения в других папках, например, CloneCD ставит драйверы:
system32\Drivers\ElbyCDFL.sys
system32\Drivers\ElbyCDIO.sys
2. Найти Entries в реестре...
:)

---
a peoples must know what is cost an opium for the race?
<<Назад  Вперед>>Модератор: wsxПечать
Объединенный Открытый Проект »   Операционные системы »   Windows NT/2K/XP »   nLite x64 OS
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0622. Количество выполненных запросов: 19, время выполнения запросов 0.0167