PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [86] 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Shkutu
11-12-2013, 19:21
Приветствую всех!
А кто-нибудь знает, может ли инно работать с wsdl? И если да, то нет ли какого-нибудь примера или где про это можно почитать?

Farser21
11-12-2013, 19:26
Nordek, я указывал путь но все равно, не получается.
Место
RegQueryStringValue(HKLM, 'SOFTWARE\Rockstar Games\EFLC', 'InstallPath', Path);//Какой ключ реестра ищет ...
Я пишу так
RegQueryStringValue(HKLM, 'World_of_Tanks', 'InstallPath', Path);//Какой ключ реестра ищет ...

Что писать вместо InstallPath я не могу врубиться где взять значение которое ведет в папке.

В итоге когда я компилирую, то пишет что такой путь не найден, а вместо World_of_Tanks. Почему-то пишется что путь был My Program. И в итоге никакого автопределения нету

Nordek
11-12-2013, 20:18
Я пишу так »
RegQueryStringValue(HKLM, 'World_of_Tanks', 'InstallPath', Path);//Какой ключ реестра ищет ...
А точно
RegQueryStringValue(HKLM, 'World_of_Tanks', 'InstallPath', Path);//Какой ключ реестра ищет ...???
Хочешь чтоб я угадал что находится у тебя в реестре?
Может так:
RegQueryStringValue(HKLM, 'SOFTWARE\World_of_Tanks', 'InstallPath', Path);//Какой ключ реестра ищет ...

или так:
RegQueryStringValue(HKLM, 'SOFTWARE\Компания_Игры\World_of_Tanks', 'InstallPath', Path);//Какой ключ реестра ищет ...


Ты залезь в regedit (Редактор реестра) да посмотри

в HKEY_LOCAL_MACHINE » SOFTWARE » Твоя_Игра

так же может находиться в HKEY_CURRENT_USER » SOFTWARE » Твоя_Игра.

Dimas2011
11-12-2013, 20:36
Выдаёт ошибку что делать??107864

Nordek
11-12-2013, 20:41
Выдаёт ошибку что делать?? »Исправить. У тебя 2 раза повторяется function InitializeSetup.

habib2302
12-12-2013, 17:30
Nordek, просто я делаю репак одной проги и папка с настройками хранятся в разных местах в зависимости от винды
XP %USERPROFILE%\Local Settings\Application Data\
Vista/7 %USERPROFILE%\AppData\LocalLow\
может просто указать минимальную версию винды чтобы этот код работал?

Nordek
13-12-2013, 08:07
XP %USERPROFILE%\Local Settings\Application Data\
Vista/7 %USERPROFILE%\AppData\LocalLow\ »

Переменная Windows %USERPROFILE% = константе Inno {%USERPROFILE}

XP
{%USERPROFILE}\Local Settings\Application Data\

Vista/7
{%USERPROFILE}\AppData\LocalLow\


Если
XP: "%USERPROFILE%\Local Settings\Application Data\"
а
Vista/7: "%USERPROFILE%\AppData\Local\"

то универсальная константа будет {localappdata}

habib2302
13-12-2013, 12:04
универсальная константа будет {localappdata} »
пути у этой константы XP \Local Settings\Application Data\
Vista/7 \AppData\Local\
Ведь если папка "Сохранения 2" будет присутствовать а папка "Сохранения" не будет присутствовать, то смысла в таком коде нету т.е он даже не сработает. Учитывать нужно все нюансы.
Ну, продолжай, продолжай... »
ты все таки был прав

Dimas2011
13-12-2013, 19:51
Что тут надо исправить??107947

habib2302
13-12-2013, 20:08
Dimas2011, у тебя указан не полный путь
у тебя HKLM, 'SOFTWARE\Wargaming.net\wot',
а нужно HKLM, 'SOFTWARE\Wargaming.net\wot\Launcher',

Dimas2011
13-12-2013, 21:30
Только теперь другая ошибка вылазее107959т

Nordek
13-12-2013, 21:58
Только теперь другая ошибка вылазее1111.pngт »Эм, посмотри в HKEY_LOCAL_MACHINE.

Dimas2011
13-12-2013, 22:09
Цитата Dimas2011:
Только теперь другая ошибка вылазее1111.pngт »
Эм, посмотри в HKEY_LOCAL_MACHINE. »
не помогло

Nordek
13-12-2013, 22:40
не помогло »Что значит не помогло?
Открой Редактор реестра
В реестре, кликни Мой компьютер
Зажми комбинацию клавиш CTRL+F
Напротив Найти введи возможные названия:
World_of_Tanks
World of Tanks
wot

Сначала в поиске вводишь World_of_Tanks
Жмёшь Найти
а потом клавишей F3 фильтруй т.е F3 » F3 » F3 » F3 » F3 » F3
таким же способом и остальные.

Если совсем худо, то »
Скачиваешь Revo Uninstaller (http://www.revouninstaller.com/revo_uninstaller_free_download.html) (На сайте есть Portable версия)
Запускаешь Revo Uninstaller
Находишь игру, выбираешь
Кликаешь Правой кнопкой мыши и выбираешь Открыть ключ реестра
Откроется ключ, а далее инфу сюда.

Dimas2011
13-12-2013, 23:59
Цитата Dimas2011:
не помогло »
Что значит не помогло?
Вариант 1
Если совсем худо, то »
Вариант 2 »
ВОТ ИНФА 107974

Nordek
14-12-2013, 03:17
ВОТ ИНФА »Ну как-то так:
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={code:GetInstallDir}
AppendDefaultDirName=no

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Code]
Function GetInstallDir(Path: String ): String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', Path);//Какой ключ реестра ищет ...
Result := Path;
end;

function InitializeSetup(): Boolean;
begin
Result:= true;
if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then
MsgBox('Игра {#SetupSetting("AppName")} не найдена! Укажите путь к папке с игрой вручную!', mbinformation, mb_ok);
end;
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={code:GetInstallDir|{pf}\Альтернативный путь}
AppendDefaultDirName=no

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Code]
Function GetInstallDir(Path: String ): String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', Path);//Какой ключ реестра ищет ...
Result := Path;
end;

function InitializeSetup(): Boolean;
begin
Result:= true;
if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then
MsgBox('Игра {#SetupSetting("AppName")} не найдена! '+#13#10+'Будет предложен альтернативный путь установки, либо укажите путь к папке с игрой вручную!', mbinformation, mb_ok);
end;

habib2302
14-12-2013, 12:35
и как сделать чтобы при выборе компонента "portable" были неактивными компоненты с ярлыками и были сняты с них галочки?
Name: icons; Description: {cm:AdditionalIcons}; Types: full;
Name: icons\desktop; Description: {cm:CreateDesktopIcon}; Types: full;
Name: icons\quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; OnlyBelowVersion: 0,6.1; Types: full;
Name: icons\quicklaunchicon7; Description: {cm:CreateQuickLaunchIcon}; MinVersion: 0,6.1; Types: full;

Dimas2011
14-12-2013, 15:40
Ну как-то так:
Вариант 1
Вариант 2 »
теперь другая ошибка 107990

Raz3r
15-12-2013, 16:23
Помогите плиз. Не могу поставить скин на инсталлер. Сделал всё по инструкции, но запускается всё-равно обычная версия setup.
Вот проект(если можно объясните, что вы изменили):

Nordek
15-12-2013, 17:03
но запускается всё-равно обычная версия setup. »Потому что у тебя код для ANSI версии Inno, а ты его на Юникодной версии Inno запускаешь. Если быть ещё точнее, то всё дело в dll:
ISSkin.dll - ANSI
ISSkinU.dll - Unicode

Вот:
#define Skin "Concave_Dark"
#define MyAppName "Crysis Wars Ex"
#define MyAppVersion "1.1.4"
#define MyAppPublisher "OMG!"
#define MyAppURL "http://www.om-studios.com/"

[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppId={{007CE108-34A2-4013-935D-23EB4F1FA81D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={code:MyConst}
DirExistsWarning=no
DisableProgramGroupPage=yes
CreateUninstallRegKey=yes
WizardImageFile=C:\Users\Razor\Downloads\Wizard.bmp
WizardSmallImageFile=C:\Users\Razor\Downloads\2000.bmp
OutputBaseFilename=Ex Mod
SetupIconFile=C:\Users\Razor\Downloads\2000.ico
UninstallIconFile=C:\Program Files (x86)\Smart Install Maker\Icons\Uninstall\Uninstall-9.ico
Compression=lzma2
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

[Files]
Source: "D:\Проект Crysis\Mods\*"; DestDir: "{app}\Mods"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "ISSkin{#A}.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "compiler:IS_Skin\Styles\{#Skin}.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy
; Примечание: Не используйте "Flags: ignoreversion" для системных файлов

[Icons]
Name: "{commondesktop}\Crysis Wars EX 32bit"; Filename: "{code:MyConst}\Bin32\Crysis.exe"; Parameters: "/-MOD CrysisWars_EX"; Tasks: desktopicon
Name: "{commondesktop}\Crysis Wars EX 64bit"; Filename: "{code:MyConst}\Bin64\Crysis.exe"; Parameters: "/-MOD CrysisWars_EX"; Tasks: desktopicon

[Code]
// Процедуры работы со скинами
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:ISSkin{#A}.dll stdcall';

procedure UnloadSkin();
external 'UnloadSkin@files:ISSkin{#A}.dll stdcall';

// Процедуры Вин-апи
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';

// Настройка пути установки
function MyConst(Default: String): String;
var
ResultStr: String;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Crytek\Crysis Wars', 'Install Dir', ResultStr) then
Result:=ResultStr
else
Result:= ExpandConstant('{pf64}\Crysis Wars Ex');
end;

// Блокирование меню выбора пути установки
Procedure InitializeWizard();
begin
WizardForm.DirEdit.Enabled := False;
end;

// Загрузка скина инсталлятора
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('{#Skin}.cjstyles');
LoadSkin(ExpandConstant('{tmp}\{#Skin}.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;




© OSzone.net 2001-2012