![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 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 |
Забанен Сообщения: 96
|
парни как сделать что бы название программы в инсталяторе было одно, а папка куда устанавливается программа была другой
|
Последний раз редактировалось vadjliss, 14-02-2016 в 08:09. Отправлено: 07:47, 14-02-2016 | #1321 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Цитата vadjliss:
|
|
------- Последний раз редактировалось ZVSRus, 22-03-2016 в 12:35. Отправлено: 14:47, 14-02-2016 | #1322 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать - Отключены кнопки Alt+F4
- Отключена кнопка "Отмена" и "Закрыть" - Нельзя закрыть с панели задач (taskbar) Вопрос : Как сделать этот код чтобы был он UNICODE ? То есть перевести из ANSI в UNICODE Скрытый текст
[code]
const MF_BYCOMMAND = 0; MF_ENABLED = 0; MF_GRAYED = 1; MF_DISABLED = 2; SC_CLOSE = 61536; GCL_STYLE = -26; CS_NOCLOSE = $200; MF_BYPOSITION = $00000400; type HMENU = THandle; function GetSystemMenu(hWnd: HWND; bRevert: BOOL): LongWord; external 'GetSystemMenu@user32.dll stdcall'; function EnableMenuItem(hMenu: THandle; uIDEnableItem: Longword; uEnable: Longword): Boolean; external 'EnableMenuItem@user32.dll stdcall'; function GetClassLong(Wnd: HWnd; Index: Integer): Longint; external 'GetClassLongA@user32.dll stdcall'; function SetClassLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetClassLongA@user32.dll stdcall'; function DeleteMenu(hMenu: HMENU; uPosition, uFlags: UINT): BOOL; external 'DeleteMenu@user32.dll stdcall'; function GetMenuItemCount(hMenu: HMENU): Integer; external 'GetMenuItemCount@user32.dll stdcall'; procedure CurPageChanged(CurPageID: Integer); begin EnableMenuItem(GetSystemMenu(WizardForm.Handle, false), SC_CLOSE, MF_DISABLED or MF_BYCOMMAND); if CurPageID = wpinstalling then WizardForm.CancelButton.Enabled := False; if (CurPageID = wpSelectDir) or (CurPageID = wpReady) then WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall) else if (CurPageID = wpFinished) then WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish) else WizardForm.NextButton.Caption := SetupMessage(msgButtonNext); end; procedure InitializeWizard; var SystemMenu: HMENU; begin SystemMenu := GetSystemMenu(WizardForm.Handle, False); DeleteMenu(SystemMenu, 9999, MF_BYCOMMAND); DeleteMenu(SystemMenu, GetMenuItemCount(SystemMenu)-1, MF_BYPOSITION); SetClassLong(WizardForm.Handle, GCL_STYLE, GetClassLong(WizardForm.Handle, GCL_STYLE) or CS_NOCLOSE); end; |
Отправлено: 18:02, 14-02-2016 | #1323 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Есть ли хоть какой способ заблокировать кнопку "Закрыть" на панели задач (taskbar) ?
|
Отправлено: 19:36, 14-02-2016 | #1324 |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Цитата Venelana:
|
|
------- Отправлено: 21:27, 14-02-2016 | #1325 |
Старожил Сообщения: 398
|
Профиль | Отправить PM | Цитировать Есть код от El Sanchez на рекурсивный поиск всех файлов по маске. Ктонить может его переделать, чтобы найдя первый файл рекурсия тут же прекращалась и функция возвращала true?
function FindFiles(Path, Mask: string; Recurse: BOOL): TArrayOfString; var FindRecAll, FindRecMask: TFindRec; begin if not DirExists(Path) then Exit; // if FindFirst(AddBackslash(RemoveBackslash(Path)) + Mask, FindRecMask) then try repeat if (FindRecMask.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0) then begin SetArrayLength(Result, GetArrayLength(Result) + 1); Result[GetArrayLength(Result) - 1] := AddBackslash(RemoveBackslash(Path)) + FindRecMask.Name; end; until not FindNext(FindRecMask); finally FindClose(FindRecMask); end; // if Recurse then begin if FindFirst(AddBackslash(RemoveBackslash(Path)) + '*', FindRecAll) then try repeat if (FindRecAll.Attributes and FILE_ATTRIBUTE_DIRECTORY <> 0) and (FindRecAll.Name <> '.') and (FindRecAll.Name <> '..') then Result := FindFiles(AddBackslash(RemoveBackslash(Path)) + FindRecAll.Name, Mask, Recurse); until not FindNext(FindRecAll); finally FindClose(FindRecAll); end; end; end; |
Отправлено: 14:58, 15-02-2016 | #1326 |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Raf-9600, пробуйте:
Function FindFiles(Path, Mask: String): Boolean; var FindRecMask: TFindRec; begin Result := False; if DirExists(Path) then if FindFirst(AddBackslash(RemoveBackslash(Path)) + Mask, FindRecMask) then try repeat if (FindRecMask.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0) then Result := True; until Result; finally FindClose(FindRecMask); end; end; |
------- Отправлено: 18:51, 15-02-2016 | #1327 |
Забанен Сообщения: 96
|
парни вопрос как сделать дополнительный ярлык на рабочий стол
#define MainExe "{app}\Bin32\crysis.exe" #define MainExe64 "{app}\Bin64\crysis.exe" #define MainExeDir Copy(MainExe, 1, RPos("\", MainExe)-1) #define MainExe64Dir Copy(MainExe64, 1, RPos("\", MainExe64)-1) #define MyAppName "My Program" #define MyAppVersion "1.5" #define MyAppPublisher "My Company, Inc." #define MyAppURL "http://www.example.com/" #define MyAppExeName "MyProg.exe" [Setup] AppId={{8CD106B3-D140-412D-8762-B30B13DEFF3C} AppName={#MyAppName} AppVersion={#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Languages] Name: "default"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{userdesktop}\{#MyAppName}"; FileName: "{#MainExe64}"; WorkingDir: "{#MainExe64Dir}"; Tasks: desktopicon; Check: IsWin64 Name: "{userdesktop}\{#MyAppName}"; FileName: "{#MainExe}"; WorkingDir: "{#MainExeDir}"; Tasks: desktopicon; Check: not IsWin64 |
Отправлено: 19:35, 15-02-2016 | #1328 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Цитата vadjliss:
|
|
Последний раз редактировалось saurn, 15-02-2016 в 20:45. Отправлено: 20:32, 15-02-2016 | #1329 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Помогите пожалуйста сделать кнопку "Отмена"
Как сделать свою кнопку вместо стандартной ? P.S Родная кнопка у меня отключена и сделана невидимой Скрытый текст
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "My Program" #define MyAppVersion "1.5" #define MyAppPublisher "My Company, Inc." #define MyAppURL "http://www.example.com/" #define MyAppExeName "MyProg.exe" [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{FC9B3E48-8A0B-49FA-B161-675874D96F13} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DisableProgramGroupPage=yes OutputBaseFilename=setup Compression=lzma SolidCompression=yes DisableWelcomePage=no AllowCancelDuringInstall=no [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [code] procedure CurPageChanged(CurPageID: Integer); begin WizardForm.CancelButton.Enabled := False; WizardForm.CancelButton.Visible := False; end; procedure TestButtonOnClick(Sender: TObject); begin MsgBox('Тест!', mbInformation, MB_OK) end; procedure InitializeWizard(); var TestButton: TButton; begin WizardForm.OuterNotebook.Height := ScaleY(361); WizardForm.InnerNotebook.Height := ScaleY(285); WizardForm.Bevel.Parent := WizardForm.WelcomePage; WizardForm.NextButton.BringToFront; WizardForm.BackButton.BringToFront; WizardForm.CancelButton.BringToFront; TestButton:=TButton.Create(WizardForm); with TestButton do begin Left := ScaleX(237); Top := ScaleY(327); Width := ScaleX(80); Height := ScaleY(23); Caption:='Тест'; OnClick:=@TestButtonOnClick; Parent:=WizardForm.WelcomePage; end; end; |
Отправлено: 13:23, 16-02-2016 | #1330 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|