Inno Setup (создание инсталяционных пакетов). Часть 3

Статус
В этой теме нельзя размещать новые ответы.

neorom

Мимокрокодил
У когось эсть пример как растятуть текст по вертикале и по горизонтале , и сжать текст по вертикале и по горизонтале. (Font.Size не придлагать.)
Фото
 

Mickey1s

Ветеран
Модератор
Кто может подсказать как прописать в текстовый документ чтото при выборе любого из компонентов?
Не в INI (через одноименную секцию) а именно в текстовый файл.
 

vint56

Ветеран
Проверенный
Mickey1s только в место [KDN].bat свой текстовый файл
[Setup]
AppName=World of Tanks
AppVerName=World of Tanks
DefaultDirName={sd}\Games\World_of_Tanks
DefaultGroupName=World_of_Tanks
AppVersion=0.1
AppCopyright=[KDN]
UsePreviousAppDir=False


[Types]
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: readme; Description: Установка; Flags: exclusive
Name: readme\on; Description: Установка RaidCall+WOT; Flags: exclusive
Name: readme\off; Description: Установка RaidCall+XVM; Flags: exclusive


Код:
procedure CurStepChanged(CurStep: TSetupStep);
 var
    S: String;
 begin
    If CurStep=ssPostInstall then begin
    if IsComponentSelected('readme\on') then
    S := ExpandConstant('{app}');
    StringChangeEx(S, ':\', ':\|', True);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', '@echo off' + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'start http://www.raidcall.com/go.php?sid=5644622' + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'ping -n 10 localhost > nul' + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'cd ' + ExpandConstant('{app}') + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'start WoTLauncher.exe' + #13#10, true);
    if IsComponentSelected('readme\off') then
    S := ExpandConstant('{app}');
    StringChangeEx(S, ':\', ':\|', True);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', '@echo off' + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'start http://www.raidcall.com/go.php?sid=5644622' + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'ping -n 10 localhost > nul' + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'cd ' + ExpandConstant('{app}') + #13#10, true);
    SaveStringToFile(ExpandConstant('{app}')+'\[KDN].bat', 'start xvm-stat.exe /launcher' + #13#10, true);
   end;
 end;[/SPOILER]
 

Mickey1s

Ветеран
Модератор
vint56, можешь подправить скрипт? какой компонент бы не выбрал прописываются оба :unknown:
 

vint56

Ветеран
Проверенный
Mickey1s
end;
 
Последнее редактирование:

vint56

Ветеран
Проверенный
Mickey1s
[Setup]
AppName=World of Tanks
AppVerName=World of Tanks
DefaultDirName={sd}\Games\World_of_Tanks


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

[Types]
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: comp; Description: Установка; Flags: exclusive
Name: comp\1; Description: Установка RaidCall+WOT; Flags: exclusive disablenouninstallwarning
Name: comp\2; Description: Установка RaidCall+XVM; Flags: exclusive disablenouninstallwarning


[UninstallDelete]
Type: filesandordirs; Name: {app}
Name: {app}\[KDN].bat; Type: filesandordirs

Код:
procedure CurStepChanged(CurStep: TSetupStep);
var
S,J: String;
begin
If CurStep=ssPostInstall then begin
  if IsComponentSelected('comp\1') then
  begin
  CreateDir(ExpandConstant('{app}'));
  StringChangeEx(S, ':\', ':\|', True);
  s := + '@echo off' + #13#10 + #13#10 + 'start http://www.raidcall.com/go.php?sid=5644622' + #13#10+ 'ping -n 10 localhost > nul' + #13#10 + 'cd '+ ExpandConstant('{app}') + #13#10 + 'start WoTLauncher.exe' + #13#10;
  SaveStringToFile(ExpandConstant('{app}\Readme-A.txt'), s, False)
  end;
  if IsComponentSelected('comp\2') then
  begin
  StringChangeEx(J, ':\', ':\|', True);
  J := + '@echo off' + #13#10 + #13#10 + 'start http://www.raidcall.com/go.php?sid=5644622' + #13#10+ 'ping -n 20 localhost > nul' + #13#10 + 'cd '+ ExpandConstant('{app}') + #13#10 + 'start xvm-stat.exe /launcher' + #13#10;
  SaveStringToFile(ExpandConstant('{app}\Readme-B.txt'), J, False);
end;
end;
end;[/SPOILER]
 

Mickey1s

Ветеран
Модератор
Работает, спасибо ;)
А можно сделать чтоб было 2 строки в файле, к примеру:
И по выбору компонента.
Сам пробовал но перезаписывается файл и остается только то что в последнем компоненте выбрано было.....
 

vint56

Ветеран
Проверенный
Mickey1s
[Setup]
AppName=World of Tanks
AppVerName=World of Tanks
DefaultDirName={sd}\Games\World_of_Tanks

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

[Types]
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: comp; Description: Установка; Flags: exclusive
Name: comp\1; Description: Установка RaidCall+WOT; Flags: exclusive disablenouninstallwarning
Name: comp\2; Description: Установка RaidCall+XVM; Flags: exclusive disablenouninstallwarning


[UninstallDelete]
Type: filesandordirs; Name: {app}
Name: {app}\[KDN].bat; Type: filesandordirs

Код:
procedure CurStepChanged(CurStep: TSetupStep);
var
S,J: String;
begin
If CurStep=ssPostInstall then begin
if IsComponentSelected('comp\1') then
begin
CreateDir(ExpandConstant('{app}'));
StringChangeEx(S, ':\', ':\|', True);
s := + 'res_y 1366' + #13#10 + 'res_x 768' + #13#10;
SaveStringToFile(ExpandConstant('{app}\Readme-A.txt'), s, False)
end;
if IsComponentSelected('comp\2') then
begin
StringChangeEx(J, ':\', ':\|', True);
J := + '@res_y 13662' + #13#10 + 'res_x 7682' + #13#10;
SaveStringToFile(ExpandConstant('{app}\Readme-A.txt'), J, False);
end;
end;
end;[/SPOILER]
 

Mickey1s

Ветеран
Модератор
vint56, прости что навязываюсь, наверно объясняю не правильно :-[
Мне нужны вот такие компоненты:
[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: langtext; Description: Язык субтитров; Types: full; Flags: fixed
Name: langtext\rus; Description: Русский; Flags: exclusive disablenouninstallwarning
Name: langtext\eng; Description: Английский; Flags: exclusive disablenouninstallwarning
Name: langvoice; Description: Выбор озвучки; Types: full; Flags: fixed
Name: langvoice\rus; Description: Русский; Flags: exclusive disablenouninstallwarning
Name: langvoice\eng; Description: Английский; Flags: exclusive disablenouninstallwarning
И при выборе определенного записывалось в документ.
Пример: выбирают Язык субтитров русский и Выбор озвучки Английский, прописывается
Выбирают Язык субтитров русский и Выбор озвучки русский, прописывается
P.S. Заранее спс :)
 

Adil

Старожил
Всем привет, можно ли отключить прокрутку мышкой в компонент листе?
 

Mailchik

Старожил
Проверенный
Mickey1s, пример..
 

sergey3695

Ветеран
Модератор
Всем привет, можно ли отключить прокрутку мышкой в компонент листе?
Код:
const
  GWL_WNDPROC = -4;
  WM_MOUSEWHEEL = $020A;
type
  LPARAM = Integer;
  WPARAM = Integer;
  LRESULT = Integer;
  TFNWndProc = Integer;
var
  WindowProc: Longint;

function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function CallWindowProc(lpPrevWndFunc: TFNWndProc; hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'CallWindowProc{#A}@user32.dll stdcall';

function Proc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;
begin
  case Msg of WM_MOUSEWHEEL:
begin
  Msg := 0;
end;
end;
  Result := CallWindowProc(WindowProc, hWnd, Msg, wParam, lParam);
end;

procedure InitializeWizard();
begin
  WindowProc := SetWindowLong(WizardForm.ComponentsList.Handle, GWL_WNDPROC, CallbackAddr('Proc'));
end;

procedure DeinitializeSetup();
begin
  SetWindowlong(CheckListBox.Handle, GWL_WNDPROC, WindowProc);
end;
 
Последнее редактирование:

Shegorat

Lord of Madness
Администратор
Всем привет, можно ли отключить прокрутку мышкой в компонент листе?
Сделать то можно, примерно такВопрос только зачем?

P.S. Пока писал пример и отвечал, уже ответили...
 
  • Like
Реакции: Adil

sergey3695

Ветеран
Модератор
Вопрос только зачем?
P.S. Пока писал пример и отвечал, уже ответили...
если щелкнуть на компонент лист и прокрутить потом мышкой,то будет съезжать наложенное изображение.
p.s. кстати на расширенной версии innocallback.dll уже не нужен для данной цели
 
Последнее редактирование:

Mickey1s

Ветеран
Модератор
Наткнулся на такую интересную штуку
R.G. Механики точно так же делали. сложно это сделать? :)
 

HoLmEs

Новичок
Подскажите как на языке inno будет blue? если можно то все коды цветов скиньте)
 

sergey3695

Ветеран
Модератор
HoLmEs, вводишь в Яндекс 'цвета Html'
пример: цвет 'яндекс' ffcc00 -> $00ccff; (впереди $ и передние два знака назадзадние два,вперед.)
воу..ля. Готово. Все цвета можно таким несложным макаром.
 

Лёха

Участник
HoLmEs,
а можно через фотошоп или любой редактор фоток, выбираешь цвет и ставишь его код.
-----------------------
Народ, видел код через который идёт проверка на реестр,
Код:
Function GetInstallDir( AppID: String ): String; var dir: String;
begin
if not RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\CAPCOM\Resident Evil 6', 'installdir', dir) then
RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\CAPCOM\Resident Evil 6', 'installdir', dir);
Result:= dir;
end;

function InitializeSetup(): Boolean;
begin
Result:= True;
if not RegKeyExists(HKLM, 'SOFTWARE\Wow6432Node\CAPCOM\Resident Evil 6') then
begin
if not RegKeyExists(HKLM, 'SOFTWARE\Wow6432Node\CAPCOM\Resident Evil 6') then
begin
MsgBox('Программа не найдена!', mberror, mb_ok);
Result:=False;
end;
end;
end;
а как сделать что бы паралельно проверялось ещё и в 86х битной винде??
 
Последнее редактирование:

vint56

Ветеран
Проверенный
Лёха
Function GetInstallDir( AppID: String ): String; var dir: String;
begin
if not RegQueryStringValue(HKLM, 'SOFTWARE\CAPCOM\Resident Evil 6', 'installdir', dir) then
RegQueryStringValue(HKLM, 'SOFTWARE\CAPCOM\Resident Evil 6', 'installdir', dir);
Result:= dir;
end;

function InitializeSetup(): Boolean;
begin
Result:= True;
if not RegKeyExists(HKLM, 'SOFTWARE\CAPCOM\Resident Evil 6') then
begin
if not RegKeyExists(HKLM, 'SOFTWARE\CAPCOM\Resident Evil 6') then
begin
MsgBox('Программа не найдена!', mberror, mb_ok);
Result:=False;
end;
end;
end;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху