Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
уже всем известно, как это применяется.. »
Применять можно по разному. А вот на счет ненужности результата - это, как посмотреть. Если та же MoveDir(...) не отработает по какой-либо причине, инсталлятор даже не пикнет, а пользователь останется без обещанного бекапа не подозревая об этом.
studentvnau@vk
29-11-2014, 03:49
Если та же MoveDir(...) не отработает по какой-либо причине, инсталлятор даже не пикнет, а пользователь останется без обещанного бекапа не подозревая об этом. »
Было дело на юникоде, перешёл на анси:)
Всем привет. недавно задался таким вопросом. При установки модеов при наведении на данный мод показывается картинка, а как сделать, чтобы сразу две подряд показывало? Вот фрагмент как у меня
case TNewCheckListBox(Sender).ItemCaption[Index] of
'1. Прицел как у 40_tonn': UndefPic := '40_tonn.bmp';
else
Всем привет.
Необходимо в .ini-файл записать только букву диска, куда была установлена программа. Как это можно реализовать, подскажите, пожалуйста.
kotyarko@fb
29-11-2014, 22:23
Было дело на юникоде, перешёл на анси »
SHFileOperation (ведь ты брал с корейки), нужно изменять для Юникода.
А если погуглить - спокойно можно найти ответ за секунду. http://krinkels.org/threads/shfileoperation-i-unicode.2221/
при наведении на данный мод показывается картинка, а как сделать, чтобы сразу две подряд показывало? »
Например, отредактировать это:'40_tonn.bmp' »
изображение.
kotyarko@fb
29-11-2014, 22:42
Необходимо в .ini-файл записать только букву диска, куда была установлена программа. Как это можно реализовать, подскажите, пожалуйста. »
По примеру получения буквы каталога от Johny777 (http://forum.oszone.net/post-1998107-1061.html).
[INI]
Filename: "{app}\Directory.ini"; Section: "Letter"; Key: "Letter1"; String: {code:GetDirectoryLetter}; Flags: uninsdeleteentry
[*Code]
function GetFolderSize(FilePath: string): string;
var
oFS: Variant;
begin
oFS := CreateOleObject('Scripting.FileSystemObject');
Result := oFS.GetDriveName(FilePath);
end;
Function GetDirectoryLetter(Where: String): String;
begin
Where := ExpandConstant('{app}');
Result := GetFolderSize(Where);
end;
kotyarko@fb, ты не понял. Чтобы было сразу 2 изображение ну типа этого '1. Прицел как у 40_tonn': UndefPic := '40_tonn.bmp' UndefPic := '40_tonn.bmp';
kotyarko@fb
30-11-2014, 00:43
ты не понял »
Как раз я всё понял. Ты хочешь, чтобы при наведении на компонент отображались два изображения. Так вот, я говорю о том, чтобы эти два изображения объединить в одно, и отображать его.
Если даже и выведутся два изображения (без изменения функции) - одно будет накладываться на второе (т.к. начальная точка - курсор). Без изменения самой функции, которая выводит изображение, вариантов больше нет.
Было дело на юникоде, перешёл на анси »
String меняйте на AnsiString, PChar на PAnsiChar
--------------------------------------------------------------
Необходимо в .ini-файл записать только букву диска, куда была установлена программа. »
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssPostInstall: SetIniString( 'Setings', 'DriveLetter', ExtractFileDrive( ExpandConstant( '{app}' ) ), ExpandConstant( '{app}\config.ini' ) );
end;
end;
diman_21Ru
01-12-2014, 16:31
В скрипте есть функция По нажатию на компонент выходить соответствующий звук но при нажатие на другой компонент звук проигрывается и там.
#include "Modules\sound modul.iss"
[Setup]
AppName=Sound
AppVerName=1.0
DefaultDirName={pf}\Sound
OutputDir=Output
RawDataResource=SndA:bugreporter_succeeded.wav |SndB:buttonclickreleaseo.WAV
[Components]
Name: "main"; Description: "Main Files";
Name: "main\a"; Description: "A Files";
Name: "main\b"; Description: "B Files";
[Code]
procedure InitializeWizard();
begin
IndexLast := -1;
pSoundMemory_A := GetResourceSoundAddr('_IS_SNDA');
pSoundMemory_B := GetResourceSoundAddr('_IS_SNDB');
WizardForm.ComponentsList.OnClickCheck := @ComponentsOnClickCheck;
end;
saneksanek
02-12-2014, 09:35
Здрасте,может кто дать код,которые будет удалять данную программу если ее повторна устанавливают.То есть пользователь установил программу,и если пользователь снова запустить setup то вылезет окно на удаление программы,и если пользователь откажется то setup закроется,а если согласится произойдет деинсталляция после чего продолжится установка.
будет удалять данную программу если ее повторна устанавливают »
#715 (http://forum.oszone.net/post-2176751-715.html)
--------------------------------------------------------------------------------
В расширенной версии возможен и такой способ:
procedure CurStepChanged( CurStep: TSetupStep );
begin
case CurStep of
ssInstall: PerformPreviousUninstall( WizardForm.ProgressGauge );
end;
end;
saneksanek
02-12-2014, 13:30
#715 »
saurn, А реализовать под сгенерированный AppId не как нельзя?
saneksanek
02-12-2014, 14:39
И еще вопрос,есть группа файлов с разной структурой,но название файла у всех одно.Возможно-ли добавь к этим файлам версии чтобы при установке если данный файл с большей версией уже был только что установлен то точно такой же файл,но с меньшей версией не устанавливался.
А реализовать под сгенерированный AppId не как нельзя? »
RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant( '{#SetupSetting( "AppId" )}_is1' ), 'UninstallString', Buff )
Подскажите, пожалуйста, как реализовать следующее:
Как при удалении программы удалить используемую системой DLL без перезагрузки системы?
kotyarko@fb
03-12-2014, 17:19
Как при удалении программы удалить используемую системой DLL без перезагрузки системы? »
UnloadDLL(ExpandConstant('*.dll'));
DeleteFile(ExpandConstant('*.dll'));
Это имеется ввиду?
kotyarko@fb
Можно целиком код?
kotyarko@fb
03-12-2014, 18:21
Можно целиком код? »
Ну так больше ничего и не надо. Просто вставить в то место, откуда он должен будет выгружать и удалять.
[*Code]
Procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
UnloadDLL(ExpandConstant('{app}\library.dll'));
DeleteFile(ExpandConstant('{app}\library.dll'));
end;
end;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC