![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата МИШАНЧИК:
Скрытый текст
[Files] Source: compiler:Dll Pack\CallbackCtrl.dll; Flags: dontcopy [code] type TWFProc = function(h:hWnd;Msg,wParam,lParam:Longint):Longint; function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall'; function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall'; function WrapWFProc(Callback: TWFProc; ParamCount: Integer): Longword; external 'wrapcallbackaddr@files:CallbackCtrl.dll stdcall'; var OldProc:Longint; free: boolean; procedure AboutSetupClick; begin //здесь обрабатываем нажатие на пункт меню "О программе ..." MsgBox('bla-bla-bla', mbInformation, MB_OK); end; function WFWndProc(h:HWND;Msg,wParam,lParam:Longint):Longint; begin if (Msg=$112) and (wParam=9999) then begin Result:=0; AboutSetupClick; end else begin if Msg=$2 then SetWindowLong(WizardForm.Handle,-4,OldProc); Result:=CallWindowProc(OldProc,h,Msg,wParam,lParam); end; end; procedure InitializeWizard; begin free := true; OldProc:=SetWindowLong(WizardForm.Handle,-4,WrapWFProc(@WFWndProc,4)); end; procedure DeinitializeSetup(); begin if free <> false then WizardForm.Free; end; Цитата ZVSRus:
Скрытый текст
;#include "botva2.iss" [Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application DisableFinishedPage=yes //SetupIconFile=icon.ico //иконка слева вверху окна инсталлятора //[files] //Source: "b2p.dll"; DestDir: "{tmp}"; Flags: dontcopy //Source: "botva2.dll"; DestDir: "{tmp}"; Flags: dontcopy [code] //function InitializeSetup(): Boolean; //begin //if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll'); //if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll'); //Result := True; //end; function ShowFinishedForm(): Boolean; var FinishedForm: TSetupForm; begin FinishedForm := CreateCustomForm; FinishedForm.Position:=poScreenCenter; try FinishedForm.ClientWidth := ScaleX(310); FinishedForm.ClientHeight := ScaleY(133); FinishedForm.BorderStyle := bsSingle; FinishedForm.BorderIcons := [biSystemMenu]; FinishedForm.Caption := 'Установка My Application'; FinishedForm.CenterInsideControl(WizardForm, False); //установка иконки, требуется ботва //ImgLoad(FinishedForm.Handle, ExpandConstant('{tmp}\icon.png'), ScaleX(20), ScaleY(20), ScaleX(46), ScaleY(40), True, False); //ImgApplyChanges(FinishedForm.Handle); with TNewButton.Create(FinishedForm) do begin Parent := FinishedForm; SetBounds(ScaleX(110), ScaleY(100), ScaleX(90), ScaleY(25)); ModalResult := mrYes; Caption := SetupMessage(msgButtonYes); end; with TNewStaticText.Create(FinishedForm) do begin Parent:= FinishedForm; Caption:='Всё готово, приятного пользования!'+ #13#10 + ''+ #13#10 + 'Запустить программу сейчас?'; Left:=70; Top:=20; Font.Name:= 'Tahoma'; Font.Size:= 9; Font.Color:=clBlack;; end; with TNewButton.Create(FinishedForm) do begin Parent := FinishedForm; SetBounds(ScaleX(210), ScaleY(100), ScaleX(90), ScaleY(25)); ModalResult := mrNo; Caption := SetupMessage(msgButtonNo); end; Result := (FinishedForm.ShowModal = mrYes); finally FinishedForm.Free; end; end; procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin case CurStep of ssDone: if ShowFinishedForm then Exec(ExpandConstant('{app}\MyProg.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); end; end; |
||
------- Отправлено: 20:05, 21-11-2015 | #1081 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Dodakaedr, Сделал как описано. Все иконки на своих местах. Но почему то программа не запускается. Путь к файлу прописан вручную.
Разобрался. Exec(ExpandConstant('{pf}\ArtIcons Pro\ARTICONS.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); при этом пути запуск происходит. Exec(ExpandConstant('Program Files (x86)\ArtIcons Pro\ARTICONS.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); при этом пути запуск не происходит. В чём разница подскажите? |
Последний раз редактировалось ZVSRus, 21-11-2015 в 22:00. Отправлено: 21:29, 21-11-2015 | #1082 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата ZVSRus:
В Exec(ExpandConstant('Program Files (x86)\ArtIcons Pro\ARTICONS.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); Exec(ExpandConstant('C:\Program Files (x86)\ArtIcons Pro\ARTICONS.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); Можно жёстко указать: {pf32} - Путь для 32-разрядного системного каталога Program Files {pf64} - Путь для 64-разрядного системного каталога Program Files |
|
Отправлено: 22:09, 21-11-2015 | #1083 |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Забыл выставить C:\ Блин глаз за мылился.
|
Отправлено: 22:51, 21-11-2015 | #1084 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Dodakaedr:
Скрытый текст
#ifndef IS_ENHANCED #error Enhanced edition of Inno Setup (restools) is required to compile this script #endif [Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application OutputDir=. [Files] Source: 1.ico; Flags: dontcopy; [code] function LoadImage(hInst: THandle; ImageName: PansiChar; ImageType: UINT; X, Y: Integer; Flags: UINT): THandle; external 'LoadImageA@user32.dll stdcall delayload'; procedure InitializeWizard; begin ExtractTemporaryFile('1.ico'); MsgBoxEx(0, 'Проверка', 'Заголовок проверки', MB_YESNO, LoadImage(0,ExpandConstant('{tmp}')+'\1.ico',1,32,32,$1010), 0); end; |
|
------- Отправлено: 22:58, 21-11-2015 | #1085 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата nik1967:
Скрытый текст
#define icon "myicon.ico" [Files] Source: {#icon}; DestDir: {tmp}; Flags: dontcopy; [Code] var IconImage1: TNewIconImage; procedure InitializeWizard(); begin IconImage1 := TNewIconImage.Create(WizardForm); with IconImage1 do begin Parent := WizardForm; SetBounds(ScaleX(40), ScaleY(313), ScaleX(105), ScaleY(105)); ExtractTemporaryFile('{#icon}'); Icon.LoadFromFile(ExpandConstant('{tmp}\{#icon}')); end; end; |
|
Отправлено: 23:35, 21-11-2015 | #1086 |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Nordek, Так проще, но как к этому прикрурить этот скрипт.
Скрытый текст
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application [Code ] procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if CurStep = ssDone then if MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' установлена!' + #10#10#13 + 'Запустить ' + '{#SetupSetting("AppName")}' + '?' , mbInformation, MB_YESNO) = IDYES then Exec(ExpandConstant('{app}\bin\XR_3DA.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); end; |
Отправлено: 09:33, 22-11-2015 | #1087 |
Забанен Сообщения: 96
|
парни помогите решить проблему надо что бы создался 1 файл ехе. а в этом скрипте создаётся ехе. и bin. то есть 2 файла
#define MyAppName "CorelCAD 2016" #define MyAppVersion "16.0.0.1079" #define MyAppPublisher "Corel" #define MyAppURL "" #define MainExe "{app}\CorelCAD 2016\BIN\CorelCAD.exe" #define MainExe64 "{app}\CorelCAD 2016\BIN\CorelCAD.exe" #define MainExeDir Copy(MainExe, 1, RPos("\", MainExe)-1) #define MainExe64Dir Copy(MainExe64, 1, RPos("\", MainExe64)-1) [Setup] AppId={{2F983EE9-A521-4D68-83F4-626DEC61E945} AppVersion=16.0.0.1079 VersionInfoVersion=16.0.0.1079 AppName={#MyAppName} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} VersionInfoDescription=CorelCAD 2016 Build 16.0.0.1079 x86-x64 OutputDir=C:\Users\\WW-W\Desktop\скрипт OutputBaseFilename=CorelCAD 2016 Build 16.0.0.1079 x86-x64 RUS SetupIconFile=C:\Users\\WW-W\Desktop\скрипт\image\1.ico PrivilegesRequired=admin Compression=lzma/ultra64 SolidCompression=true InternalCompressLevel=ultra64 WizardImageFile=image\1.bmp WizardSmallImageFile=image\2.bmp UsePreviousGroup=False DisableProgramGroupPage=yes UninstallRestartComputer=yes ArchitecturesInstallIn64BitMode=x64 DiskSpanning=yes SlicesPerDisk=1 DiskSliceSize=728760320 [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked [Files] ;Source: C:\Users\WW-W\Desktop\64\ProgramFiles64Folder\*; DestDir: {app}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs Source: C:\Users\WW-W\Desktop\64\ProgramFiles64Folder\*; DestDir: {app}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs Source: C:\Users\WW-W\Desktop\32\ProgramFilesFolder\*; DestDir: {app}; Check: not IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs // C:\ProgramData ;Source: ..\64\LocalAppDataFolder\*; DestDir: {commonappdata}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs // CommonAppDataFolder Source: ..\64\CommonAppDataFolder\*; DestDir: {localappdata}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs // CommonFiles ;Source: ..\64\CommonFilesFolder\*; DestDir: {cf}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs //Application Data Source: ..\64\AppDataFolder\*; DestDir: {userappdata}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs // C:\ProgramData ;Source: ..\32\LocalAppDataFolder\*; DestDir: {commonappdata}; Check: not IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs // CommonAppDataFolder Source: ..\32\CommonAppDataFolder\*; DestDir: {localappdata}; Check: not IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs // CommonFiles Source: ..\32\CommonFilesFolder\*; DestDir: {cf}; Check: not IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs //Application Data Source: ..\32\AppDataFolder\*; DestDir: {userappdata}; Check: not IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs [Icons] Name: "{userdesktop}\{#MyAppName}"; FileName: "{#MainExe64}"; WorkingDir: "{#MainExe64Dir}"; Tasks: desktopicon; Check: IsWin64 Name: "{userdesktop}\{#MyAppName}"; FileName: "{#MainExe}"; WorkingDir: "{#MainExeDir}"; Tasks: desktopicon; Check: not IsWin64 |
Отправлено: 09:50, 22-11-2015 | #1088 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать ZVSRus, чукча не читатель, чукча писатель.
Скрытый текст
#ifndef IS_ENHANCED #error Enhanced edition of Inno Setup (restools) is required to compile this script #endif [Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application OutputDir=. [Files] Source: 1.ico; Flags: dontcopy; [Languages] Name: ru; MessagesFile: compiler:Languages\russian.isl [code] function LoadImage(hInst: THandle; ImageName: PansiChar; ImageType: UINT; X, Y: Integer; Flags: UINT): THandle; external 'LoadImageA@user32.dll stdcall delayload'; procedure InitializeWizard; begin ExtractTemporaryFile('1.ico'); end; procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if CurStep = ssDone then if MsgBoxEx(0,'Программа '+'{#SetupSetting("AppName")}'+' установлена!'+#10#10#13+'Запустить '+'{#SetupSetting("AppName")}'+'?', 'Установка — '+'{#SetupSetting("AppName")}',MB_YESNO,LoadImage(0,ExpandConstant('{tmp}')+'\1.ico',1,32,32,$1010),0) = IDYES then Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); end; vadjliss, из справки Inno
[Setup]: DiskSpanning
Возможные значения: yes или no Значение по умолчанию: no Опмсание: При значении yes будет производиться разбиение на диски. Определяет, создавать ли компилятору один файл SETUP.EXE, или делить его на файлы (SETUP-*.BIN), которые помещаются на дискету, CD-ROM, DVD-ROM или другой носитель. |
------- Отправлено: 09:55, 22-11-2015 | #1089 |
Забанен Сообщения: 96
|
как совместить если имеется уже уже токая строка procedure CurStepChanged(CurStep: TSetupStep);
|
Отправлено: 10:26, 22-11-2015 | #1090 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|