[архив] Скрипты Inno Setup. Помощь и советы [часть 2]
-
nik1967
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
SeDmY,
А зачем копировать DirectX и всякую мелкую дребедень в папку с игрой?
[Run]
Filename: "{src}\DirectX\DXSETUP.exe"; WorkingDir: "{src}\DirectX"; Parameters: "/silent"; Flags: waituntilterminated
То есть программа работает из директории установки: {src}, и не копируется в папку назначения {app}.
А зачем копировать DirectX и всякую мелкую дребедень в папку с игрой?
[Run]
Filename: "{src}\DirectX\DXSETUP.exe"; WorkingDir: "{src}\DirectX"; Parameters: "/silent"; Flags: waituntilterminated
То есть программа работает из директории установки: {src}, и не копируется в папку назначения {app}.
-
SeDmY
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
CrOsP, вот, пробуй 
Код:

Код:
Код: Выделить всё
[code]
//вешаем ссылку на подпись
var
MouseLabel,SiteLabel: TLabel;
procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://game.dnet.com.ua', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;
procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=$0000C8FF
end;
procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=$000080FF
end;
procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=$0000A0FF
end;
procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=$000080FF
end;
// Importing LoadSkin API from ISSkin.DLL
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';
// Importing UnloadSkin API from ISSkin.DLL
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';
// Importing ShowWindow Windows API from User32.DLL
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Office2007.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Office2007.cjstyles'), '');
Result := True;
end;
procedure InitializeWizard();
begin
WizardForm.Position:= poScreenCenter; //отключение о программе
//вешаем ссылку
MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm
SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=$000080FF
SiteLabel.Caption:='Наш сайт game.dnet.com.ua'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm
end;
procedure DeinitializeSetup();
begin
// Hide Window before unloading skin so user does not get
// a glimpse of an unskinned window before it is closed.
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;-
nik1967
-
SeDmY
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Здравствуйте. Inno Setup очень хорошо обращается с ini файлами, жалко с xml так нельзя.
Мне нужно в конце установки найти в XML файле строчку
Код:
и заменить ее на
Код:
Возможно ли это сделать силами самой inno?
Мне нужно в конце установки найти в XML файле строчку
Код:
Код: Выделить всё
<Setting name="Language Code" type="string">en</Setting>и заменить ее на
Код:
Код: Выделить всё
<Setting name="Language Code" type="string">ru</Setting>Возможно ли это сделать силами самой inno?
-
paravozik2009
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Цитата Schemer:
Возможно ли это сделать силами самой inno
Вот процедура замены текста в файле. Кажется давно ее мне подогнал Serega
Код:
Возможно ли это сделать силами самой inno
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Вот процедура замены текста в файле. Кажется давно ее мне подогнал Serega
Код:
Код: Выделить всё
procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
S: TArrayOfString;
//str : string;
i : Integer;
begin
if not FileExists(FilePath) then begin MsgBox('Файл не найден', mbError, mb_Ok); Exit;end; // если файла нет, выходим
LoadStringsFromFile(FilePath, S); // загружаем файл
for i:= 0 to GetArrayLength(S)-1 do begin
if (Pos(AnsiUpperCase(find), AnsiUpperCase(S[i])) > 0) then begin
StringChangeEx(S[i], find, replace, True);
end;
end;
SaveStringsToFile(FilePath, S, False); // сохраняем файл
end;-
paravozik2009
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
R.i.m.s.k.y., у меня ещё небольшой вопрос по поводу поиска по реестру.
Я ищу установленные AutoCAD'ы на компьютере. Все они в реестре имеют вид по такому шаблону:
HKEY_LOCAL_Machine\SOFTWARE\Autodesk\AutoCAD\16.2\409:5005 (а дальше - ключи)
HKEY_LOCAL_Machine\SOFTWARE\Autodesk\AutoCAD\17.1\519:6007 (а дальше - ключи)
Нужно организовать перебор по этим папкам (внутри - перебор по соответствию ключа "ProductName" членам "рукотворного" списка). Я писал, писал, и запутался:
Код:
Я ищу установленные AutoCAD'ы на компьютере. Все они в реестре имеют вид по такому шаблону:
HKEY_LOCAL_Machine\SOFTWARE\Autodesk\AutoCAD\16.2\409:5005 (а дальше - ключи)
HKEY_LOCAL_Machine\SOFTWARE\Autodesk\AutoCAD\17.1\519:6007 (а дальше - ключи)
Нужно организовать перебор по этим папкам (внутри - перебор по соответствию ключа "ProductName" членам "рукотворного" списка). Я писал, писал, и запутался:
Код:
Код: Выделить всё
if RegGetSubkeyNames(HKEY_LOCAL_Machine, 'SOFTWARE\Autodesk\AutoCAD\', Names) then
begin
for i:=0 to GetArrayLength(Names)-1 do
if RegGetSubkeyNames(Names[i], Names2) then
begin
for j:=0 to GetArrayLength(Names2)-1 do
if RegGetSubkeyNames(Names2[j], Names3) then
begin
for k:=0 to GetArrayLength(Names3)-1 do
if (Names3[k] = 'ProductName') and ...-
nik1967
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
paravozik2009, Именно .cab файлов? Или всё же файлов .arc, переименованных в файлы .cab?
-
SeDmY
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Нужна помощь:
как мне поступить!?
Запустил скрипт :
Даже не менял ничего!
как мне поступить!?
Запустил скрипт :
http://forum.ru-board.com/topic.cgi?...&start=1000#20
Даже не менял ничего!
-
SeDmY
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Цитата Schemer:
выдает ошибку. Что я сделал не так
Не написали какую ошибку.
Вот мой код использования этой процедуры
Код:
Подменяет в профилях настройки MEGUI путь к плагинам.
plugindir2_5 вычисляется чуть выше (берется из реестра)
В вашем случае
Код:
выдает ошибку. Что я сделал не так
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Не написали какую ошибку.
Вот мой код использования этой процедуры
Код:
Код: Выделить всё
RePlaceTextinFile(ExpandConstant('{app}\x264\Megui\allprofiles\AviSynth\AviSynth_dp_ FFT3DGPU.xml'), 'import("', 'import("'+plugindir2_5+'\');Подменяет в профилях настройки MEGUI путь к плагинам.
plugindir2_5 вычисляется чуть выше (берется из реестра)
В вашем случае
Код:
Код: Выделить всё
[_Code]
...
RePlaceTextinFile(ExpandConstant('C:\file.xml'), 'en', 'ru');
...-
R.i.m.s.k.y.
Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Schemer, спасибо за подсказку!
У меня в голове Icons ни как не ассоциировалось со списком файлов в меню Пуск.
Подсказка помогла.
Наверное более уместным было бы название секции Items.
У меня в голове Icons ни как не ассоциировалось со списком файлов в меню Пуск.
Подсказка помогла.
Наверное более уместным было бы название секции Items.
.