PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [95] 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

diman_21Ru
18-01-2014, 12:06
Всем привет кто нибудь может дать скрипт с функцией музыки ,чтобы я легко мог поставить на свой , спасибо зарание :)

nik1967
18-01-2014, 12:15
novahudonoser, saurn, чё велосипед то изобретать?
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppName")}_is1,InstallLocation|{pf}\My Program}
OutputDir=.
DisableReadyPage=yes

novahudonoser
18-01-2014, 12:25
saurn, так я её закоментил...
http://clip2net.com/s/6CzeTh

novahudonoser, saurn, чё велосипед то изобретать? »
спасибо, но это не полностью решает задачу описанную выше... http://forum.oszone.net/post-2291507-1879.html

saurn
18-01-2014, 13:01
nik1967, там, если ключ есть, нужно пропустить страницу выбора папки, так что все равно лезть в код, походя и поиск папки сделал через код, разница не велика.
novahudonoser, проверил еще раз http://forum.oszone.net/post-2291503-1878.html, все работает, как и положено.

novahudonoser
18-01-2014, 17:04
все работает, как и положено. »
я тоже все проверил, не работает
возможно конфликтует с другими функциями кода, хз (

saurn
18-01-2014, 17:14
novahudonoser, скрипт покажитте

novahudonoser
18-01-2014, 17:23
пример

saurn
18-01-2014, 17:53
novahudonoser, немножко допилил и причесал скрипт. Проверил: страницы пропускаются и показываются, как и требуется.
[Setup]
AppName=TimeCalculator
AppVerName=TimeCalculator
AppPublisher=zzz
OutputDir=.
OutputBaseFilename=TimeCalculator_1.8
DefaultDirName={code:GetInstallDir}
;AllowNoIcons=yes
DefaultGroupName=TimeCalculator
DisableStartupPrompt=yes
Compression=lzma
SolidCompression=yes
WizardImageFile=setup_2.bmp
WizardSmallImageFile=setup_1.bmp


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


[Files]
Source: "TimeCalculator.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: recursesubdirs
Source: "DataBaseEditor.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: recursesubdirs
Source: "help\TimeCalculator.chm"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: recursesubdirs


[Tasks]
Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"


[Registry]
Root: HKLM; Subkey: SOFTWARE\TimeCalculator; Flags: dontcreatekey uninsdeletekey;


[Icons]
Name: "{group}\TimeCalculator"; Filename: "{app}\TimeCalculator.exe"; WorkingDir: "{app}"; IconFilename:"{app}\TimeCalculator.exe"
Name: "{group}\Справка"; Filename: "{app}\TimeCalculator.chm"
Name: "{group}\Удалить программу"; Filename: "{uninstallexe}"
Name: "{userdesktop}\TimeCalculator"; Filename: "{app}\TimeCalculator.exe"; WorkingDir: "{app}"; IconFilename:"{app}\TimeCalculator.exe"; Tasks: desktopicon


[Run]
Filename: "{app}\TimeCalculator.exe"; Description: "Запустить программу"; Flags: nowait postinstall skipifsilent
Filename: "{app}\TimeCalculator.chm"; Description: "Открыть справку"; Flags: shellexec nowait postinstall skipifsilent


[InstallDelete]
Type: files; Name: "{app}\TimeCalculator.exe"
Type: files; Name: "{app}\TimeCalculator.chm"
Type: files; Name: "{app}\DataBaseEditor.exe"


[UninstallDelete]
Type: files; Name: "{app}\TimeCalculator.exe"
Type: files; Name: "{app}\TimeCalculator.tcs"
Type: files; Name: "{app}\TimeCalculator.chm"
Type: files; Name: "{app}\DataBaseEditor.exe"


[Code]
var
ValueExists: Boolean;


// функция обнаружения запущенного процесса
function IsProcessRunning(FileName: String): Boolean;
var
objSWbemLocator, objSWbemServices: Variant;
begin
try
objSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
except
ShowExceptionMessage;
Exit;
end;
objSWbemServices := objSWbemLocator.ConnectServer();
objSWbemServices.Security_.ImpersonationLevel := 3;
Result := (objSWbemServices.ExecQuery('SELECT * FROM Win32_Process WHERE Name="' + FileName + '"').Count > 0);
end;


// проверка ключа в реестре, если он есть - берём из него путь для установки
function GetInstallDir(const Default: String): String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\TimeCalculator', 'path', Result);
if Result <> '' then RemoveBackslash(Result) else Result := ExpandConstant('{pf}\TimeCalculator');
end;


// на этапе установки проверяем запущен ли определённый процесс, если запущен - отменяем установку и выводим месейдж
function InitializeSetup(): Boolean;
begin
Result := not IsProcessRunning('TimeCalculator.exe');
if not Result then MsgBoxEx(Application.Handle, 'Программа TimeCalculator запущена!'+ Chr(10)+'Закройте приложение выбрав пункт меню "Закрыть программу"'+ Chr(10)+'И повторите установку обновления.', 'Установка обновления отменена', $10, 0, 0);
end;


procedure RedesignWizardForm;
begin
with TLabel.Create(nil) do
begin
Parent := WizardForm.WelcomePage;
SetBounds(ScaleX(426), ScaleY(288), ScaleX(51), ScaleY(13));
Caption := '© zzz';
end;

WizardForm.WelcomeLabel2.Height := ScaleY(207);
WizardForm.RunList.Height := ScaleY(107);
end;


procedure InitializeWizard();
begin
RedesignWizardForm;
end;


// если путь из ключа выбран - пропускаем страницу с выбором пути
function ShouldSkipPage(PageID: Integer): Boolean;
begin
ValueExists := RegValueExists(HKLM, 'SOFTWARE\TimeCalculator', 'path');
case PageID of
wpSelectDir: Result := ValueExists;
wpReady: Result := not ValueExists;
end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectTasks: if ValueExists then WizardForm.NextButton.Caption := SetupMessage(msgButtonNext) else WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall);
end;
end;


// на этапе деинсталяции проверяем запущен ли определённый процесс, если запущен - отменяем деинсталяцию и выводим месейдж
function InitializeUninstall(): Boolean;
begin
Result := not IsProcessRunning('TimeCalculator.exe');
if not Result then MsgBoxEx(Application.Handle, 'Программа TimeCalculator запущена!'+ Chr(10)+'Закройте приложение выбрав пункт меню "Закрыть программу"'+ Chr(10)+'И запустите процесс деинсталяции заново.', 'Деинсталяция отменена', $10, 0, 0);
end;

novahudonoser
18-01-2014, 18:12
да, теперь работает всё как надо!
большое тебе человеческое спасибо saurn не знаю как по батюшки.
в чём был косяк полагаю спрашивать бесполезно...

saurn
18-01-2014, 18:44
в чём был косяк полагаю спрашивать бесполезно... »
В этом: DisableReadyPage=yes. Изначально в секции Setup был задан пропуск страницы готовности, это глобальный параметр.

novahudonoser
18-01-2014, 18:56
я перед постом скрипта по ошибке закоментил не то
так то он был выключен, я уже показывал скрин http://clip2net.com/s/6CzeTh
вообщем пофик, ещё раз спасибо за терпение и потраченное время.

Ivan_009
19-01-2014, 10:04
Как через ботву наложить Edit чтобы можно было выделять покажите пожалуйста пример

diman_21Ru
19-01-2014, 11:40
Здарова всем я взял Bass и поставил на свой скрипт музыка играет но как можно добавить кнопку вкл\выкл , кто знает ответьте зарание спасибо :)

Ivan_009
19-01-2014, 14:21
diman_21Ru,

Покажи скрипт

diman_21Ru
19-01-2014, 14:52
я в личку кину тебе

Ivan_009
19-01-2014, 16:23
diman_21Ru, Куда прикрутить вверх или низ

diman_21Ru
19-01-2014, 16:33
в верх наверное

sergey3695
19-01-2014, 16:33
Как через ботву наложить Edit чтобы можно было выделять покажите пожалуйста пример »
Никак. Ботва накладывает картинку. Если только поверх картинки накладывать edit...

Ivan_009
19-01-2014, 16:45
Никак. Ботва накладывает картинку. Если только поверх картинки накладывать edit... »

sergey3695, Можно пример

diman_21Ru
19-01-2014, 16:52
Ivan_009,ну как готово чтоли для меня там :)




© OSzone.net 2001-2012