![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 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 |
Ветеран Сообщения: 862
|
Профиль | Отправить PM | Цитировать TryRooM, значит нужно учитывать что раздел в реестре у каждой системы будет разным. а просто взять и скопировать название раздела я и сам могу
|
------- Отправлено: 20:27, 16-06-2015 | #711 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 76
|
Профиль | Отправить PM | Цитировать habib2302, Можно добавить проверку на систему, и создавать папку исходя из этого.
Скрытый текст
function ForWindows8One(): Boolean; var Version: TWindowsVersion; begin GetWindowsVersionEx(Version); // Windows 8.1 version is 6.3 (workstation) if (Version.Major = 6) and (Version.Minor = 3) and (Version.ProductType = VER_NT_WORKSTATION) then Result := True else Result := False; end; function ForWindows7(): Boolean; var Version: TWindowsVersion; begin GetWindowsVersionEx(Version); // Windows 7 version is 6.1 (workstation) if (Version.Major = 6) and (Version.Minor = 1) and (Version.ProductType = VER_NT_WORKSTATION) then Result := True else Result := False; end; function ForWindowsVistaAndWindows2008(): Boolean; var Version: TWindowsVersion; begin GetWindowsVersionEx(Version); // Anything with major version 6 where we won't use Windows 7 driver if (Version.Major = 6) and (not ForWindows7) then Result := True else Result := False; end; function ForWindows2003(): Boolean; var Version: TWindowsVersion; begin GetWindowsVersionEx(Version); // Windows 2003 version is 5.2 (server) if (Version.Major = 5) and (Version.Minor = 2) and (Version.ProductType <> VER_NT_WORKSTATION) then Result := True else Result := False; end; function ForWindowsXP(): Boolean; var Version: TWindowsVersion; begin GetWindowsVersionEx(Version); // Anything with major version 5 where we won't use Windows 2003 driver if (Version.Major = 5) and (not ForWindows2003) then Result := True else Result := False; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin If ForWindowsXP then ForceDirectories(ExpandConstant('{src}\S-1-5-21-3919186426-968546183-1294672792-1001-XP\test2')); //создаем папки If ForWindowsVistaAndWindows2008 then ForceDirectories(ExpandConstant('{src}\S-1-5-21-3919186426-968546183-1294672792-1001-Vista\test2')); //создаем папки If ForWindows7 then ForceDirectories(ExpandConstant('{src}\S-1-5-21-3919186426-968546183-1294672792-1001-7\test2')); //создаем папки If ForWindows8One then ForceDirectories(ExpandConstant('{src}\S-1-5-21-3919186426-968546183-1294672792-1001-8\test2')); //создаем папки end; end; |
Отправлено: 20:53, 16-06-2015 | #712 |
Ветеран Сообщения: 862
|
Профиль | Отправить PM | Цитировать TryRooM, я не умею предсказывать название этого раздела!
|
------- Отправлено: 22:10, 16-06-2015 | #713 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать habib2302, для этой цели есть библа getsid. В поиске по теме найдешь.
|
------- Отправлено: 22:32, 16-06-2015 | #714 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата habib2302:
Вам сие для чего? |
|
Отправлено: 01:01, 17-06-2015 | #715 |
Ветеран Сообщения: 862
|
Профиль | Отправить PM | Цитировать Iska, для создания папки с название раздела HKU\SID на скринах приведен пример
http://forum.oszone.net/post-2519231-707.html |
------- Отправлено: 09:00, 17-06-2015 | #716 |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Помогите чтоб был виден текст на Выборе задач,Выборе Группы для Ярлыков и Страница Установки FreeArc(Просто там не виден текст какой файл распаковывается сколько времени осталось)
|
Отправлено: 02:17, 18-06-2015 | #717 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата habib2302:
|
|
Отправлено: 03:04, 18-06-2015 | #718 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Iska:
habib2302, пример: Скрытый текст
#define A = (Defined UNICODE) ? "W" : "A" const TOKEN_READ = $00020008; TokenUser = 1; ERROR_INSUFFICIENT_BUFFER = 122; HEAP_ZERO_MEMORY = $8; MAX_PATH = 260; type SID_AND_ATTRIBUTES = record Sid: Longint; Attributes: DWORD; end; TOKEN_USER = record User: SID_AND_ATTRIBUTES; end; function GetCurrentProcess: THandle; external 'GetCurrentProcess@kernel32.dll stdcall'; function OpenProcessToken(ProcessHandle: THandle; DesiredAccess: DWORD; out TokenHandle: THandle): BOOL; external 'OpenProcessToken@advapi32.dll stdcall'; function GetTokenInformation(TokenHandle: THandle; TokenInformationClass: Integer; TokenInformation: Longint; TokenInformationLength: DWORD; out ReturnLength: DWORD): BOOL; external 'GetTokenInformation@advapi32.dll stdcall'; function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall'; function GetProcessHeap: THandle; external 'GetProcessHeap@kernel32.dll stdcall'; function HeapAlloc(hHeap: THandle; dwFlags, dwBytes: DWORD): Longint; external 'HeapAlloc@kernel32.dll stdcall'; function HeapFree(hHeap: THandle; dwFlags: DWORD; lpMem: Longint): BOOL; external 'HeapFree@kernel32.dll stdcall'; function RtlMoveMemoryTU(out Destination: TOKEN_USER; const Source: Longint; len: Integer): Integer; external 'RtlMoveMemory@kernel32.dll stdcall'; function ConvertSidToStringSid(Sid: Longint; out StringSid: Longint): BOOL; external 'ConvertSidToStringSid{#A}@advapi32.dll stdcall'; function LocalFree(hMem: THandle): THandle; external 'LocalFree@kernel32.dll stdcall'; /////////////////////////////////////////// function GetCurrentProcessOwnerSID: String; var hProcessToken, hHeap: THandle; tuTokenUser: TOKEN_USER; lpTokenUser, lpStringSid: Longint; dwReturnLength: DWORD; begin if not OpenProcessToken(GetCurrentProcess, TOKEN_READ, hProcessToken) then Exit; if not GetTokenInformation(hProcessToken, TokenUser, 0, 0, dwReturnLength) and BOOL(DLLGetLastError = ERROR_INSUFFICIENT_BUFFER) then begin hHeap := GetProcessHeap; if hHeap = 0 then Exit; lpTokenUser := HeapAlloc(hHeap, HEAP_ZERO_MEMORY, dwReturnLength); if lpTokenUser <> 0 then begin if GetTokenInformation(hProcessToken, TokenUser, lpTokenUser, dwReturnLength, dwReturnLength) then begin RtlMoveMemoryTU(tuTokenUser, lpTokenUser, SizeOf(tuTokenUser)); if ConvertSidToStringSid(tuTokenUser.User.Sid, lpStringSid) then begin Result := CastIntegerToString(lpStringSid); LocalFree(lpStringSid); end; end; HeapFree(hHeap, 0, lpTokenUser); end; end; CloseHandle(hProcessToken); end; ////////////////////////// procedure InitializeWizard; begin CreateDir(ExpandConstant('{src}\') + GetCurrentProcessOwnerSID); end; |
|
Отправлено: 11:02, 18-06-2015 | #719 |
![]() Новый участник Сообщения: 16
|
Профиль | Сайт | Отправить PM | Цитировать Всем привет, уважаемые знатоки! Внимание, вопрос:
1) Есть 7 разных изображений, одинакового формата .bmp, одинакового размера в пикселях, но различных по смысловому наполнению. 2) Их обязательно нужно отобразить ТОЛЬКО по 1 согласно 7 страницам установщика - 1 картинку на стр 1, вторую - на стр 2 и тд. при этом остальных не должно быть видно. 3) Картинки должны розмещаться на Parent:= Wizardform; (смысл вы поняли). 4) Картинки имеют такой же отступ сверху, как и кнопки назад, далее и отмена по стандарту. Поиск по разделам не помог, решение ранее у меня было, но так как утеряны файлы с готовым вариантом, прошу помощи тут. Заранее спасибо за ответ. |
Отправлено: 23:54, 18-06-2015 | #720 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|