Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
diman_21Ru
29-09-2014, 20:59
Dodakaedr, да и код ключа верный я могу конечно сменить на другой код и будет работать но тогда у меня почемуто прозрачность установщика портится
Dodakaedr, сравни этот скрипт он может как то повлеять на прозрачность установщика, заранее спасибо !
function FileVersion(const FilePath: String): String;
var
oFS: Variant;
begin
oFS:= CreateOleObject('Scripting.FileSystemObject');
try
Result:= oFS.GetFileVersion(FilePath);
except
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
begin
if not FileExists(ExpandConstant('{app}\WorldOfTanks.exe')) then begin
MsgBox('Установка модов невозможна, так как по выбранному пути отсутствует клиент игры World of Tanks. Выберите правильный путь и продолжайте установку!', mbError, MB_OK);
Result := False;
end;
if FileExists(ExpandConstant('{app}')+'\WorldOfTanks.exe') then begin
if FileVersion(ExpandConstant('{app}')+'\WorldOfTanks.exe') < '' then begin
MsgBoxEx(WizardForm.Handle, 'Моды не будут работать на данной версии игры! Моды предназначены для версии патча', 'Моды не подходят у данному патчу World of Tanks', MB_OK or MB_ICONWARNING, 0, 0);
Result:= false;
end;end;
end;
end;
end;
Dodakaedr
29-09-2014, 22:20
сравни этот скрипт он может как то повлеять на прозрачность установщика »
Скиньте лучше скрипт.
diman_21Ru
29-09-2014, 22:44
Dodakaedr, Вообщем Уже дело не в Скрипте прозрачность теряю вроде как из за Windows 8.1 а на Windows 7 говорят норм вот два скрина :
diman_21Ru
29-09-2014, 23:14
Dodakaedr, Не знаешь как прозрачность вернуть если сталкивался с windows 8.1 с проблемами
diman_21Ru
30-09-2014, 10:05
Народ подскажите как исправить вот это посмотрите оба скрина первый запускается на Windows 7 второй на windows 8.1
Всем привет. Столкнулся с проблемой… Нужно свернуть инсталлятор через секцию код, нажав на определённую кнопку. Знаю такой код: SendMessage(WizardForm.Handle, WM_SYSCOMMAND, 61472, 0); всё работает прекрасно, но он мне не подходит. Дело в том, что этот код использует WizardForm.Handle и нажав на кнопку свернуть инсталлятор, перестаёт работать другая «плюшка». Подскажите, пожалуйста, есть ли какая-нибудь другая альтернатива?
sergey3695
30-09-2014, 18:40
diman_21Ru,
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.
[Files]
Source: "BGImage.bmp"; Flags: dontcopy solidbreak
[code ]
var
BGBitmapImage: TBitmapImage;
procedure InitializeWizard();
var
Panel: TPanel;
begin
ExtractTemporaryFile('BGImage.bmp');
BGBitmapImage := TBitmapImage.Create(WizardForm);
BGBitmapImage.Parent := WizardForm;
BGBitmapImage.Align := alClient;
BGBitmapImage.SendToBack;
WizardForm.OuterNotebook.Hide;
WizardForm.NextButton.Hide;
BGBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BGImage.bmp'))
Panel := TPanel.Create(WizardForm);
with Panel do begin
Parent := WizardForm;
SetBounds(ScaleX(33), ScaleY(12), ScaleX(321), WizardForm.InnerPage.Height - ScaleY(43));
// BevelInner := bvNone;
// BevelOuter:= bvNone;
// BorderStyle := bsNone;
BorderStyle := bsSingle;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.Caption := 'Example_';
WizardForm.NextButton.Hide;
WizardForm.CancelButton.Caption := 'Close';
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := False;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
end;
8.1 Профессианальная. Все работает. Смотрите у ся в коде что-нибудь, так на глазок врят ли че сказать можно.
Tco 03, другая "плюшка". и гадай что там не работает тогда. :help:
diman_21Ru
30-09-2014, 19:07
sergey3695, Скрипт кину сможете помоч
sergey3695
30-09-2014, 20:30
diman_21Ru, Ну если у меня все будет работать, то нет. другой машинки для теста нету (на 8.1).
diman_21Ru
30-09-2014, 20:47
sergey3695, Все уже понял ошибку надо было комплимировать на Unicode а не ANSI моя ошибка )
Dodakaedr, Все уже понял ошибку надо было комплимировать на Unicode а не ANSI моя ошибка )
AlekseyPopovv
30-09-2014, 22:59
Как сделать что бы если файл q.xml присутствует в папке {userappdata}\x\z - то другой файл q.xml с папки {tmp} не копировался, а если файла q.xml нет в папке {userappdata}\x\z - то файл q.xml с папки {tmp} копировался?
procedure CurStepChanged(CurStep: TSetupStep);
begin
if Installer.Checked then
CreateDir(ExpandConstant('{userappdata}\x'));
if Installer.Checked then
CreateDir(ExpandConstant('{userappdata}\x\z'));
if Installer.Checked then
if FileExists(ExpandConstant('{userappdata}\x\z\q.xml')) then
if not FileCopy(ExpandConstant('{tmp}\q.xml'), ExpandConstant('{userappdata}\z\z\q.xml'), False) then
end;
Dodakaedr
30-09-2014, 23:02
Как сделать что бы если файл q.xml присутствует в папке »
А чем вам секция [Files] не угодила?
[Files]
Source: "q.xml"; DestDir: "{userappdata}\x\z"; Check: "InstallerCheck"; Flags: onlyifdoesntexist
или как-то так:
procedure CurStepChanged(CurStep: TSetupStep);
var
PathName: String;
begin
if Installer.Checked then
begin
PathName:= ExpandConstant('{userappdata}\x\z');
ForceDirectories(PathName);
if not FileExists(ExpandConstant('{userappdata}\x\z\q.xml')) then
FileCopy(ExpandConstant('{tmp}\q.xml'), ExpandConstant('{userappdata}\x\z\q.xml'), False);
end;
end;
AlekseyPopovv
30-09-2014, 23:05
Я и через секцию [Files] не знаю :idontnow: Хотелось бы узнать и так и так.
Dodakaedr
Спасибо. В моей справке описание этого флага на английском, а из перевода шибко не понял что этот флаг делает.
Dodakaedr
30-09-2014, 23:15
Спасибо. »
Для этого есть "Полезное сообщение" :)
AlekseyPopovv, Dodakaedr, в Check можно использовать встроенные булевые функции.
[Files]
Source: q.xml; DestDir: {userappdata}\x\z; Check: not FileExists(ExpandConstant('{userappdata}\x\z\q.xml'));
AlekseyPopovv
01-10-2014, 00:27
Как добавить значок программы в панель управления?
Dodakaedr
01-10-2014, 00:45
Как добавить значок программы в панель управления? »
Надо создать файл .cpl (такой тип dll-ки) Ссылка (http://www.hardline.ru/3/37/4101/). Или Через реестр (http://www.oszone.net/10372/add_icons_cp#002)
и гадай что там не работает тогда. »
Есть ли какой-нибудь другой код, кроме этого: SendMessage(WizardForm.Handle, WM_SYSCOMMAND, 61472, 0); чтобы свернуть инсталлятор?
Подскажите, пожалуйста, есть ли какая-нибудь другая альтернатива? »
Tco 03, Конечно со скином в паре... =)
http://rghost.ru/58292609
sergey3695
01-10-2014, 10:14
Shift85, там вообще-то SendMessage(WizardForm.Handle, WM_SYSCOMMAND, 61472, 0);
Tco 03, зачем тебе сворачивать его? кроме этого нету. ну по крайней менее я не знаю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC