![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Скрипты Inno Setup. Помощь и советы [часть 7]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] |
|
Отправлено: 11:48, 10-03-2014 |
![]() Старожил Сообщения: 217
|
Профиль | Отправить PM | Цитировать Как в установщике убрать Noscroll нету прокрутки мышкай.
|
Отправлено: 15:03, 12-12-2014 | #2161 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Цитата diman_21Ru:
Если же речь идет о отсутствии скрола при использовании скина, то решение уже давалось: http://forum.oszone.net/post-2308009-2259.html |
|
Отправлено: 16:39, 12-12-2014 | #2162 |
![]() Старожил Сообщения: 217
|
Профиль | Отправить PM | Цитировать saurn, а куда это вставить
|
Отправлено: 17:32, 12-12-2014 | #2163 |
![]() Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Народ подскажите как сделать прозрачными такие формы как TEdit например?
|
Отправлено: 18:34, 12-12-2014 | #2164 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата diman_21Ru:
Пример
[Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program [Languages] Name: "default"; MessagesFile: "compiler:Default.isl" [Code] var NewMemo1: TNewMemo; procedure RedesignWizardForm; begin NewMemo1 := TNewMemo.Create(WizardForm); with NewMemo1 do begin Parent := WizardForm.WelcomePage; Left := ScaleX(176); Top := ScaleY(184); Width := ScaleX(301); Height := ScaleY(113); Lines.Text := 'Описание программы:' + #13#10 + 'My Autoplay Professional - программа для создания ' + #13#10 + 'меню ' + #13#10 + 'автозапуска, презентаций и прочих проектов. Вам ' + #13#10 + 'не ' + #13#10 + 'нужен опыт работы с такими программами, все ' + #13#10 + 'предельно ясно и удобно, плюс есть Русская ' + #13#10 + 'поддержка, много готовых шаблонов. Стоит ' + #13#10 + 'выделить ' + #13#10 + 'удобный редактор, который позволит в короткие ' + #13#10 + 'сроки сделать профессиональное меню ' + #13#10 + 'автозапуска.'; ScrollBars := ssVertical; //возможны значения ssBoth, ssHorizontal, ssNone, ssVertical end; end; procedure InitializeWizard(); begin RedesignWizardForm; end; Цитата nikolaha86med:
|
||
------- Последний раз редактировалось Dodakaedr, 12-12-2014 в 19:13. Отправлено: 18:55, 12-12-2014 | #2165 |
![]() Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Dodakaedr, Не поможешь вставить нужное из этого примера в мой скрипт,а то у меня чет не получается!
|
Отправлено: 23:01, 12-12-2014 | #2166 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Цитата diman_21Ru:
|
|
Отправлено: 16:43, 13-12-2014 | #2167 |
Новый участник Сообщения: 1
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 02:10, 14-12-2014 | #2168 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать petrmissial@fb,
MB_DEFBUTTON2, где цифра указывает на номер кнопки. Кнопка номер 1 - YES, кнопка номер 2 - NO. Следовательно, чтобы сделать кнопку YES дефолтной, надо указать ее номер, тоесть 1. Или вобще убрать MB_DEFBUTTON, по умолчанию будет активна первая кнопка. |
Последний раз редактировалось saurn, 14-12-2014 в 16:01. Отправлено: 04:07, 14-12-2014 | #2169 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать код
#define A = (Defined UNICODE) ? "W" : "A" const INTERNET_OPEN_TYPE_PRECONFIG = 0; INTERNET_FLAG_NO_CACHE_WRITE = $4000000; INTERNET_FLAG_PRAGMA_NOCACHE = $100; INTERNET_FLAG_RELOAD = $80000000; INTERNET_FLAG_NEED_FILE = $10; INTERNET_FLAG_NO_AUTO_REDIRECT = $200000; HTTP_QUERY_FLAG_NUMBER = $20000000; HTTP_QUERY_LOCATION = 33; HTTP_QUERY_CONTENT_LENGTH = 5; HTTP_QUERY_STATUS_CODE = 19; ERROR_INSUFFICIENT_BUFFER = 122; HTTP_STATUS_OK = 200; HTTP_STATUS_REDIRECT = 302; GENERIC_READ = $80000000; GENERIC_WRITE = $40000000; CREATE_ALWAYS = 2; HEAP_ZERO_MEMORY = $8; IRF_SYNC = $4; type INTERNET_BUFFERS = record dwStructSize: DWORD; Next: Longint; lpcszHeader: String; dwHeadersLength: DWORD; dwHeadersTotal: DWORD; lpvBuffer: Longint; dwBufferLength: DWORD; dwBufferTotal: DWORD; dwOffsetLow: DWORD; dwOffsetHigh: DWORD; end; var g_DownloadPage: TOutputProgressWizardPage; function InternetOpen(lpszAgent: String; dwAccessType: DWORD; lpszProxyName, lpszProxyBypass: String; dwFlags: DWORD): Integer; external 'InternetOpen{#A}@wininet.dll stdcall'; function InternetOpenUrl(hInternet: Longint; lpszUrl, lpszHeaders: String; dwHeadersLength, dwFlags: DWORD; dwContext: DWORD_PTR): Integer; external 'InternetOpenUrl{#A}@wininet.dll stdcall'; function InternetReadFileEx(hFile: Longint; var lpBuffersOut: INTERNET_BUFFERS; dwFlags: DWORD; dwContext: DWORD_PTR): BOOL; external 'InternetReadFileEx{#A}@wininet.dll stdcall'; function InternetCloseHandle(hInternet: Longint): BOOL; external 'InternetCloseHandle@wininet.dll stdcall'; function HttpQueryInfo(hRequest: Longint; dwInfoLevel: DWORD; var lpvBuffer: Longint; var lpdwBufferLength, lpdwIndex: DWORD): BOOL; external 'HttpQueryInfo{#A}@wininet.dll stdcall'; function _HttpQueryInfo(hRequest: Longint; dwInfoLevel: DWORD; lpvBuffer: String; var lpdwBufferLength, lpdwIndex: DWORD): BOOL; external 'HttpQueryInfo{#A}@wininet.dll stdcall'; function StrFormatByteSize64(qdw: Currency; pszBuf: AnsiString; cchBuf: UINT): Longint; external 'StrFormatByteSize64A@shlwapi.dll stdcall'; function StrFromTimeInterval(pszOut: String; cchMax: UINT; dwTimeMS: DWORD; digits: Byte): Integer; external 'StrFromTimeInterval{#A}@shlwapi.dll stdcall'; function CreateFile(lpFileName: String; dwDesiredAccess, dwShareMode: DWORD; lpSecurityAttributes: Longint; dwCreationDisposition, dwFlagsAndAttributes: DWORD; hTemplateFile: THandle): THandle; external 'CreateFile{#A}@kernel32.dll stdcall'; function WriteFile(hFile: THandle; lpBuffer: Longint; nNumberOfBytesToWrite: DWORD; var lpNumberOfBytesWritten: DWORD; lpOverlapped: Longint): BOOL; external 'WriteFile@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 HeapSize(hHeap: THandle; dwFlags: DWORD; lpMem: Longint): DWORD; external 'HeapSize@kernel32.dll stdcall'; function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall'; function GetTickCount: DWORD; external 'GetTickCount@kernel32.dll stdcall'; function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer; external 'MulDiv@kernel32.dll stdcall'; /////////////////////////////////////////////////// function TicksToTime(const dwTicks: DWORD): String; begin Result := StringOfChar(#0, StrFromTimeInterval(Result, 0, dwTicks, 8)); StrFromTimeInterval(Result, Length(Result)+1, dwTicks, 8); end; //////////////////////////////////////////////////////// function BytesToSize(const exBytes: Double): AnsiString; begin Result := StringOfChar(#0, 15); if Abs(exBytes) > 9.223372036854775807E18 then exBytes := 0; #ifdef UNICODE Result := CastIntegerToAnsiString(StrFormatByteSize64(Abs(exBytes div 1E4), Result, Length(Result))); #else Result := CastIntegerToString(StrFormatByteSize64(Abs(exBytes div 1E4), Result, Length(Result))); #endif end; //////////////////////////////////////////////////// function DownloadFile(const szURL: String): Boolean; var hConnect, hSession, hFile, hHeap: THandle; szHeader, szFileName: String; dwBufferLength, dwIndex, dwStartDownload, dwStart, dwElapsed, dwWritten: DWORD; lpBuffer, lpStatus, lpSize: Longint; ib: INTERNET_BUFFERS; begin try hSession := InternetOpen('', INTERNET_OPEN_TYPE_PRECONFIG, '', '', 0); if hSession = 0 then Exit; // additional header szHeader := 'Referer: http://example.org/'#13#10; // try direct link repeat hConnect := InternetOpenUrl(hSession, szURL, szHeader, Length(szHeader), INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_PRAGMA_NOCACHE or INTERNET_FLAG_RELOAD or INTERNET_FLAG_NO_AUTO_REDIRECT, 0); if hConnect = 0 then Exit; dwBufferLength := SizeOf(lpBuffer); dwIndex := 0; lpStatus := 0; if not HttpQueryInfo(hConnect, HTTP_QUERY_STATUS_CODE or HTTP_QUERY_FLAG_NUMBER, lpStatus, dwBufferLength, dwIndex) then Exit; lpBuffer := 0; HttpQueryInfo(hConnect, HTTP_QUERY_LOCATION, lpBuffer, dwBufferLength, dwIndex); if DLLGetLastError = ERROR_INSUFFICIENT_BUFFER then begin szURL := StringOfChar(#0, dwBufferLength-1); if not _HttpQueryInfo(hConnect, HTTP_QUERY_LOCATION, szURL, dwBufferLength, dwIndex) then Exit; if lpStatus = HTTP_STATUS_REDIRECT then InternetCloseHandle(hConnect); end; until lpStatus = HTTP_STATUS_OK; // get file size dwBufferLength := 4; dwIndex := 0; if not HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_LENGTH or HTTP_QUERY_FLAG_NUMBER, lpSize, dwBufferLength, dwIndex) then Exit; // save dialog procedure DownloadFile(urlFilename, szDestDir: String); if DirExists(szDestDir) then try fName := Format('%s\%s', [szDestDir, fName]); hFile := CreateFile(szFileName, GENERIC_READ or GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); //create file if hFile = 0 then Exit; hHeap := GetProcessHeap(); lpBuffer := HeapAlloc(hHeap, HEAP_ZERO_MEMORY, 4*1024); // buffer size must be >= 512Kb ib.dwStructSize := SizeOf(ib); ib.lpvBuffer := lpBuffer; ib.dwBufferLength := HeapSize(hHeap, 0, lpBuffer); 0); //create file if hFile = 0 then Exit; hHeap := GetProcessHeap(); lpBuffer := HeapAlloc(hHeap, HEAP_ZERO_MEMORY, 4*1024); // buffer size must be >= 512Kb ib.dwStructSize := SizeOf(ib); ib.lpvBuffer := lpBuffer; ib.dwBufferLength := HeapSize(hHeap, 0, lpBuffer); szFileName := ExtractFileName(szURL); if GetSaveFileName('Сохранить как...', szFileName, '', Format('*%s', [ExtractFileExt(szFileName)]), ExtractFileExt(szFileName)) then try hFile := CreateFile(szFileName, GENERIC_READ or GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); //create file if hFile = 0 then Exit; hHeap := GetProcessHeap(); lpBuffer := HeapAlloc(hHeap, HEAP_ZERO_MEMORY, 4*1024); // buffer size must be >= 512Kb ib.dwStructSize := SizeOf(ib); ib.lpvBuffer := lpBuffer; ib.dwBufferLength := HeapSize(hHeap, 0, lpBuffer); // show page g_DownloadPage.Show; g_DownloadPage.ProgressBar.Show; g_DownloadPage.SetProgress(0, lpSize); // try download try // initial labels g_DownloadPage.Msg1Label.Caption := Format( 'Файл:'#9#9'%s'#13#10 + 'Загружено:'#9'%s из %s', [ExtractFileName(szFileName), BytesToSize(0), BytesToSize(lpSize)] ); g_DownloadPage.Msg2Label.Caption := Format( 'Прогресс:'#9'%s'#13#10 + 'Скорость:'#9'%s/сек'#13#10 + 'Прошло:'#9'0 сек'#13#10 + 'Осталось:'#9'%d сек', [FormatFloat('0.#0 %', MulDiv(g_DownloadPage.ProgressBar.Position, 100, lpSize)), BytesToSize(0), MaxInt] ); // download dwStartDownload := GetTickCount; while ib.dwBufferLength > 0 do begin dwStart := GetTickCount; dwElapsed := 0; while dwElapsed < 1000 do begin // read file InternetReadFileEx(hConnect, ib, IRF_SYNC, 0); // write file WriteFile(hFile, ib.lpvBuffer, ib.dwBufferLength, dwWritten, 0); ib.dwBufferTotal := ib.dwBufferTotal + dwWritten; // update progressbar g_DownloadPage.ProgressBar.Position := ib.dwBufferTotal; // process messages Application.ProcessMessages; dwElapsed := GetTickCount - dwStart; end; // update labels dwElapsed := GetTickCount-dwStartDownload; g_DownloadPage.Msg1Label.Caption := Format( 'Файл:'#9#9'%s'#13#10 + 'Загружено:'#9'%s из %s', [ExtractFileName(szFileName), BytesToSize(ib.dwBufferTotal), BytesToSize(lpSize)] ); g_DownloadPage.Msg2Label.Caption := Format( 'Прогресс:'#9'%d %%'#13#10 + 'Скорость:'#9'%s/сек'#13#10 + 'Прошло:'#9'%s'#13#10 + 'Осталось:'#9'%d сек', [MulDiv(ib.dwBufferTotal, 100, lpSize), BytesToSize(MulDiv(ib.dwBufferTotal, 1000, dwElapsed)), TicksToTime(dwElapsed), MulDiv(lpSize-ib.dwBufferTotal, dwElapsed, 1000)/(ib.dwBufferTotal + 1)] ); end; except Result := False; // error finally end; finally CloseHandle(hFile); HeapFree(hHeap, 0, lpBuffer); Result := ib.dwBufferTotal = lpSize; // success end; except Result := False; // error finally InternetCloseHandle(hConnect); InternetCloseHandle(hSession); g_DownloadPage.Hide; end; end; ///////////////////////////////////// procedure CreateDownloadProgressPage; begin g_DownloadPage := CreateOutputProgressPage('Загрузка файла', ''); with g_DownloadPage do begin Msg1Label.Height := Msg1Label.Height shl 1; Msg2Label.Height := Msg2Label.Height shl 2; Msg2Label.Top := ProgressBar.Top + ProgressBar.Height + ScaleY(5); end; end; ///////////////////////////// procedure InitializeWizard(); begin CreateDownloadProgressPage(); end; ////////////////////////////////////////////////////// function NextButtonClick(CurPageID: Integer): Boolean; begin Result := True; case CurPageID of wpWelcome: DownloadFile('http://yandex.ru/1.gif'); end; end; подскажите,пытался сделать загрузку файла без сохранить как,сделать все как указано #442,но почему то не работает?что не так?где нужно указать саму директорию сохранения тоже не совсем понятно??? |
Последний раз редактировалось icetanker, 15-12-2014 в 09:40. Отправлено: 09:27, 15-12-2014 | #2170 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 |
|