|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1270 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Может у Вас есть ссылочки? |
|
Отправлено: 13:58, 13-01-2017 | #1781 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать
Всем привет как убрать выбор компонентов, на картинке выделил !
|
||||
Отправлено: 14:01, 13-01-2017 | #1782 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата jdcorg:
я те прям работающий кусок кода дам [CODE] var Original_SID, Original_UserName : string; #ifdef UNICODE #define A "W" #else #define A "A" #endif #ifdef UNICODE #define A "W" #else #define A "A" #endif const WTS_CURRENT_SERVER_HANDLE = 0; WTS_CURRENT_SESSION = (-1); WTSUserName = 5; function WTSQuerySessionInformation(hServer: THandle; SessionId, WTSInfoClass: DWORD; var ppBuffer: Longint; var pBytesReturned: DWORD): BOOL; external 'WTSQuerySessionInformation{#A}@wtsapi32.dll stdcall'; procedure WTSFreeMemory(pMemory: Longint); external 'WTSFreeMemory@wtsapi32.dll stdcall'; function GetLastError(): DWORD; external 'GetLastError@kernel32.dll stdcall'; function GetLoggedOnUserName(): String; var aNames: TArrayOfString; dwLength: DWORD; lpBuffer: Longint; begin Result:=GetUserNameString; // по-умолчанию текущий пользователь, для WinXP, в которой WTSQuerySessionInformation не отрабатывает, ошибка 1702 try if not WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSUserName, lpBuffer, dwLength) then begin //dwLength := GetLastError(); //MsgBox(IntToStr(dwLength), mbError, mb_Ok); Exit; end; Result := CastIntegerToString(lpBuffer); finally WTSFreeMemory(lpBuffer); end; end; type PSID = record buffer: array [0..1024] of char; end; function LookupAccountName(lpSystemName: DWORD; lpAccountName: AnsiString; var Sid: PSID; var cbSid: DWORD; ReferencedDomainName: AnsiString; var cbReferencedDomainName: DWORD; var peUse: DWORD): BOOL; external 'LookupAccountNameA@advapi32.dll stdcall'; function ConvertSidToStringSid(var Sid: PSID; var pStringSid: DWORD): BOOL; external 'ConvertSidToStringSidA@advapi32.dll stdcall'; function lstrcat(lpString1: AnsiString; lpString2: DWORD):DWORD; external 'lstrcat@kernel32.dll stdcall'; function GetUserSID(userName: AnsiString):string; var Sid: PSID; cbSid, len, peUse, ssid: DWORD; ansi: AnsiString; Success: BOOL; begin cbSid := 1024; len := 1024; ansi := StringOfChar(#0, 1024); Success := LookupAccountName(0, userName, Sid, cbSid, ansi, len, peUse); if Success then begin ConvertSidToStringSid(Sid, ssid); ansi := StringOfChar(#0,1024); lstrcat(ansi,ssid); len := pos(#0,ansi); Result := copy(string(ansi),1,len-1); end; end; function GetOriginalSID(s:string): string; begin Result := Original_SID; end; function SVPSettingsFolder(string : string) : string; var s:string; begin if (SVPSettingsFolderTrue) then begin result := ExpandConstant('{userappdata}'); if IsComponentSelected('nastrSVP\settingsLocate\localuser') then begin if Original_UserName = GetUserNameString then result := ExpandConstant('{userappdata}') else if RegQueryStringValue(HKU, Original_SID+'\Volatile Environment', 'APPDATA', s) then result := RemoveBackslashUnlessRoot(s) else result := ExpandConstant('{commonappdata}'); // если вдруг не прочиталось из реестра end; if IsComponentSelected('nastrSVP\settingsLocate\publicuser') then result := ExpandConstant('{commonappdata}'); end else result := '!!! SVPSettingsFolder not defined !!!'; end; Function InitializeSetup: Boolean; begin Original_UserName := GetLoggedOnUserName; Original_SID := GetUserSID(original_UserName); end; Valera90, |
|
------- Последний раз редактировалось R.i.m.s.k.y., 13-01-2017 в 14:22. Отправлено: 14:09, 13-01-2017 | #1783 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
|
|
Отправлено: 14:26, 13-01-2017 | #1784 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать jdcorg, спасибо надо не говорить а нажимать
вкрации original user входит в ОС, current user запускает прогу runas |
------- Отправлено: 14:29, 13-01-2017 | #1785 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Привет всем еще раз, помню тут был простой скрипт у кого то пример на добавление картинок при наведение мышкой на компонент, скиньте пожалуйста
|
Отправлено: 14:45, 13-01-2017 | #1786 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:12, 13-01-2017 | #1787 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Я вижу, что этого не происходит ни у текущего юзера, ни у админа. Тогда простая замена имени юзера в пути к каталогам не имеет смысла. |
|
Отправлено: 22:51, 13-01-2017 | #1788 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать jdcorg, УМВР
добавь MSGBOX (имя пользователя, куст реестра, путь до папки) и посмотри верно ли определяется все пути |
------- Отправлено: 23:09, 13-01-2017 | #1789 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Запускал от имени админа на учётке простого юзера: файлы устанавливаются в соответствующие каталоги простого юзера, но записей в HKCU нет. Я так понимаю, что шаманство с файловыми путями в установочном файле не меняет принципа операционной системы- запустил от имени админа значит ОС все действия выполняет именно для учётки админа. |
|
Отправлено: 00:38, 14-01-2017 | #1790 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|