WR. Проблема инсталляции на Win2003
реклама
Привет!
Об этом я уже говорил в соответствующей теме на форуме, но возможно это окажется более полезным здесь, на ПС.
Многие издатели игр и ПО встраивают в инсталляторы своих продуктов защиту от инсталляции на „неправильных“ ОС. Примером может служить Microsoft Windows Server 2003, популярный среди пиратствующих оверклокеров из-за своей стабильности. Существует способ запустить такие игры, как Rome: Total War и DOOM3 на Windows Server 2003, Windows XP 64-bit и Longhorn.
Рассмотрим этот способ на примере Rome: Total War:
1. Нужно создать скрипт. Для этого нужно создать текстовый файл с содержанием скрипта и сохранить его с расширением .vbs. Сам текст скрипта выглядит так:
Option Explicit
Const msiOpenDatabaseModeReadOnly = 0
Const msiOpenDatabaseModeTransact = 1
Dim argNum, argCount:argCount = Wscript.Arguments.Count
If (argCount < 1) Then
Wscript.Echo "Please supply the name of the msi file to be modified."
Wscript.Quit 1
End If
' Scan arguments for valid SQL keyword and to determine if any update operations
Dim openMode : openMode = msiOpenDatabaseModeReadOnly
openMode = msiOpenDatabaseModeTransact
' Connect to Windows installer object
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError
' Open database
Dim databasePath:databasePath = Wscript.Arguments(0)
Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError
' Process SQL statements and delete the crap out of this installer!
Dim query, view, record, message, rowData, columnCount, delim, column
Set view = database.OpenView("Delete from LaunchCondition") : CheckError
view.Execute
wscript.echo "Launch Conditions Removed"
Set view = database.OpenView("Delete from InstallExecuteSequence where Action='OnCheckSilentInstall'")
view.Execute
wscript.echo "OnCheckSilentInstall step removed"
Set view = database.OpenView("Delete from Property where Property = 'ISSETUPDRIVEN'")
view.Execute
wscript.echo "Property ISSETUPDRIVEN removed"
Set view = database.OpenView("INSERT INTO Property (Property,Value) VALUES ('ISSETUPDRIVEN',1)")
view.Execute
wscript.echo "Property ISSETUPDRIVEN added"
database.Commit
Wscript.Quit 0
Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbLf & errRec.FormatText
End If
Fail message
End Sub
Sub Fail(message)
Wscript.Echo message
Wscript.Quit 2
End Sub
2. Далее следует скопировать файлы со всех трех установочных дисков игры (напомню, мы рассматриваем пример Rome - Total War) на хард, в одну папку.
3. Пропатчить файл Rome - Total War(TM).msi тем скриптом. Делается это так: файл .msi переносится мышкой в файл скрипта (как в папку). После этого вылезут сообщения об удачном проведении патча.
4. Инсталлировать и наслаждаться :)
Удачной игры!
winlogon
Буду рад Вашим комментариям в этой ветке конференции.
winlogon
Желающие примкнуть к Weekly Report могут сделать это: напишите письмо по адресу weekly.report@gmail.com . Участники проекта обсудят Вашу кандидатуру. Крайне приветствуется стиль и грамотность автора.
Сделаем Персональные страницы лучшими вместе!
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают