Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]
т.е ты имеешь виду перевести info.rtf »
Ага, именно это имею ввиду, и не только. Эти вопросы подробно описаны в справке, сотни раз пережеванны на форумах и есть в стандартных примерах. Большинство ответов у вас под рукой. Я начал свое знакомство с Inno с разбора буржуйских каракулей в справке и анализа коробочных примеров. Советую вам поступить так же - большинство вопросов отпадут сами, да и кругозор расширится. Дело не в том, что кто-то не хочет вам помогать, но в том, что порой совсем не хочется тратить время, на объяснение азов, человеку, который не впервый раз открыл Inno Setup. В названии данного форума нет слов "Сделайте за меня", здесь лишь помогают, на безвоздмездной основе, по мере своих возможностей. И помогут, если вы не будете каждый раз задавать вопросы, ответы на которые вам были даны ранее.
habib2302
30-06-2013, 17:55
переводился в зависимости от выбраного языка»
Как обычно самым простым способом, при помощи секции CustomMessages
[Languages]
Name: Russian; MessagesFile: compiler:Languages\Russian.isl
Name: English; MessagesFile: compiler:Languages\English.isl
[CustomMessages]
Russian.MsgUnins=Текст сообщения на русском
English.MsgUnins=Текст сообщения на буржуйском»
не работает.как было
http://img833.imageshack.us/img833/5523/akq.png (http://img9.imageshack.us/img9/3721/wczx.png)
так и осталось!!!
не работает »
И не будет, если просто воткнуть строчки в скрипт и ждать, что они сами волшебным образом пропишутся везде, где нужно))
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
AppId=wwwwwwwwwwwwww
[Languages]
Name: Russian; MessagesFile: compiler:Languages\Russian.isl
Name: English; MessagesFile: compiler:Languages\English.isl
[CustomMessages]
Russian.MsgUnins=Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?
English.MsgUnins=Before installation it is necessary to remove the previous version of the app. Continue?
Russian.Failed=Удаление завершилось неудачей. Бывай!
English.Failed=Removal came to the end with failure. Happen!
[code]
function UninstallMyApp(): Boolean;
var
Buff: String;
i: Integer;
begin
Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
if not Result then Result := not FileExists(RemoveQuotes(Buff));
if not Result then if MsgBox(CustomMessage('MsgUnins'), mbError, MB_YESNO) = IDYES then
try
Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
finally
Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
if not Result then MsgBox(CustomMessage('Failed'), mbError, MB_OK);
end;
end;
function InitializeSetup(): Boolean;
begin
Result := UninstallMyApp();
end;
Johny777, вариант с таймером оказался не жизнеспособен: память утекает, как в трубу.
Dinvin4ester
01-07-2013, 15:35
Ребята сильно не пинайте, но у меня опять возник вопрос - имею вот такое
[Files]
Source: iconka.ico; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: InstallFiles\*; Flags: dontcopy
Source: "E:\Приколы\Игры\Flaming Ball\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdir
Вот эта папка - InstallFiles ставится вместе с игрой . Не подскажите как убрать ?
Dinvin4ester
Source: InstallFiles\*; DestDir: {tmp}; Flags: deleteafterinstall;
Хотя она и с флагом dontcopy не должна копироватся в папку установки...
Dinvin4ester
Source: InstallFiles\*; Flags: dontcopy
это временные файлы установщика они не как не могут устанавливаться в app каталог
Johny777
01-07-2013, 16:46
saurn, вариант с таймером оказался не жизнеспособен: память утекает, как в трубу. »
Вот код. Что с работающим таймером, что без под конец установки процесс занимает 2700+ кб. Дело не в таймере:
Под себя при создании он берёт 1 раз 14 кб
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
Source: {fonts}\*; DestDir: {app}; Flags: external
Source: {fonts}\*; DestDir: {app}; Flags: external
Source: {fonts}\*; DestDir: {app}; Flags: external
[code ]
type
TFNTimerProc = Longint;
const
TIMER_ID = 777;
function SetTimer(hWnd: HWND; nIDEvent, uElapse: UINT; lpTimerFunc: TFNTimerProc): UINT; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: HWND; uIDEvent: UINT): BOOL; external 'KillTimer@user32.dll stdcall';
procedure TimerProc(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD);
begin
WizardForm.CancelButton.Enabled := FileExists('C:\msdia80.dll');
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall: SetTimer(WizardForm.Handle, TIMER_ID, 30, CallbackAddr('TimerProc'));
ssPreInstall: KillTimer(WizardForm.Handle, TIMER_ID);
end;
end;
procedure DeinitializeSetup();
begin
KillTimer(WizardForm.Handle, TIMER_ID);
end;
И я не знаю какой таймер ты используешь. Я стандартным TTimer-м не пользуюсь :)
Кстати есть ещё высокоскоростной таймер MMTimer (мультимедийный), который работает в отдельном потоке без задержки, но он в твоём случае думаю неуместен
Johny777, спасибо. Дело было именно в таймере, просто я реализовал его не верно.Точнее не так.
procedure Timer(Sender: TObject);
begin
...
end;
...
Timer := TTimer.Create(nil);
with Timer do
begin
Enabled := True;
Interval := 5;
OnTimer := @Timer;
end;
...
Вот, как раз стандартный TTimer я и пользовал))
UPD:
А виноват действительно был не таймер. Нашел причину утечки памяти.
Dinvin4ester
01-07-2013, 19:41
Теперь такая ошибка - http://i46.fastpic.ru/big/2013/0701/77/60dc0b8f8ae17c2954baa26ebac13f77.png
сам архив - http://sendfile.su/833359 . В том то и дело что вместе с игрой устанавливаются папки , но в них ничего нет .
Dinvin4ester, смотрим на вашу секцию файлов и что мы там видим:
[Files]
Source: iconka.ico; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "InstallFiles\*"; Flags: DontCopy;
Source: "E:\Приколы\Игры\Flaming Ball\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;Source: Slides\*; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Slides\1.jpg; DestDir: {tmp}; Flags: dontcopy
Source: InstallFiles\isSlideShow.dll; DestDir: {tmp}; Flags: dontcopy
Source: InstallFiles\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: InstallFiles\WizardImage.jpg; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\botva2.dll; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\ProgressBackground.png; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\ProgressImg.png; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\Button.png; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\Tiger.cjstyles; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\ISSkin.dll; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Source: InstallFiles\InnoCallback.dll; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system
Эти файлы копируются в папку установки, потому что они дальше по скрипту используются деинсталятором, а папка пустая, потому что у файлов атрибут "Скрытый"
Dinvin4ester
01-07-2013, 20:34
saurn,
Получается не убрать это ?
Получается не убрать это ? »
Ну почему же, можно запихнуть все файлы в ексишник, то есть в ресурсы, но особой нужды в этом нет. Это не является ошибкой, просто папка содержит файлы, необходимые для работы деинстала. Добавьте в скрипт вот это:
[Dirs]
Name: {app}\InstallFiles; attribs: hidden; Flags: uninsalwaysuninstall
И папка не будет мозолить вам глаза.
Dinvin4ester
01-07-2013, 21:07
saurn,
Благодарю , все получилось .
Dinvin4ester
02-07-2013, 12:58
Ребята, помогите убрать эффекты в слайдшоу и если не сложно сказать, что за чёрная полоса торчит в последнем окне инсталлятора - http://i46.fastpic.ru/big/2013/0702/6b/6dfc0432b249b4ff0f70e6a65deeb16b.png
Сам скрипт= http://sendfile.su/833659 .
Заранее спасибо .
Ребята, помогите убрать эффекты в слайдшоу »
Строка 571 в скрипте, булевное значение True замените на False
InitializeSlideShow(BackgroundForm.Handle, 0, 0, GetSystemMetrics(0), GetSystemMetrics(1), False, 1);
На счет черной полосы: это может быть пустой лейбл(скорее всего), контрол, который забыли спрятать или еще что. Нужен скрипт с минимальным набором файлов.
Dinvin4ester я и могу ошибаться
мне кажется LabelTime3 не скрыт он скрыт при ошибке а не скрыт при нормальной установки
wpFinished:эти там есть
begin
LabelTime3.Hide; добавь это
Dinvin4ester
03-07-2013, 08:29
saurn,
Вот скрипт с установочным файлом - http://sendfile.su/834007
Эффект "растворения" в слайдшоу еще можно как-то прописать ? И если не сложно вы ранее мне давали как прописать на рус и т.д , так вот посмотрите правильно прописал , а то у меня не русифицирует,но переписывает файлы куда надо,да и просто, видать, версии не совпадают.Мне именно важно знать, в таблетках, русике, озвучках флаги какие должны быть.
Crazy Noise
03-07-2013, 14:37
Имеется скрипт
[Setup]
AppName=My Program
AppVersion=1.5
AppPublisher=My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Icons]
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Run]
Filename: {app}\MyProg.exe; Description: {cm:LaunchProgram,My Program}; Flags: nowait postinstall skipifsilent
[Code]
var
NewButton1: TNewButton;
ResultCode: Integer;
procedure NewButton1Click(Sender: TObject); forward;
procedure NewButton1Click(Sender: TObject);
begin
Exec(ExpandConstant('{src}\setup.exe'),'','',SW_SHOW,ewNoWait,ResultCode)
end;
procedure InitializeWizard();
begin
NewButton1 := TNewButton.Create(WizardForm);
with NewButton1 do
begin
Parent := WizardForm;
Left := ScaleX(16);
Top := ScaleY(327);
Width := ScaleX(75);
Height := ScaleY(25);
Caption := 'NewButton1';
OnClick := @NewButton1Click;
end;
NewButton1.TabOrder := 5;
end;
Вопрос первый:
Как прописать команду выполнения
netsh.exe wlan set hostednetwork mode=allow ssid="Home" key="12345678" keyUsage=persistent
в
Exec(ExpandConstant('{src}\setup.exe'),'','',SW_SHOW,ewNoWait,ResultCode)?
Второй вопрос:
Можно ли как-то
эту секцию кода
procedure NewButton1Click(Sender: TObject);
begin
Exec(ExpandConstant('{src}\setup.exe'),'','',SW_SHOW,ewNoWait,ResultCode)
end;
запускать по кнопке через [Run]?
Mailchik
03-07-2013, 15:27
Crazy Noise,
1. Exec('netsh.exe', 'wlan set hostednetwork mode=allow ssid="Home" key="12345678" keyUsage=persistent', '', SW_SHOW, ewNoWait, ResultCode)
2. [Run]
Filename: "netsh.exe"; Parameters: "wlan set hostednetwork mode=allow ssid=""Home"" key=""12345678"" keyUsage=persistent"; Flags: nowait;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.