![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Скрипты Inno Setup. Помощь и советы [часть 5]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Отправлено: 03:49, 21-05-2012 |
Забанен Сообщения: 31
|
Johny777, Точно, сразу не сообразил так сделать, удалил taskkill.exe. Проверил, действительно без taskkill.exe всё работает и убивает процессы без исполняемого файла, а значит библиотека не обращается к taskkill.exe и не передаёт какие либо команды для завершения процесса, что имеет большой плюс. Нет двойного обращения.
El Sanchez, Спасибо! Этот ответ вполне устраивает. Т.е на сколько я понял istask.dll обращается напрямую к kernel32.dll ExitProcess. Если библиотека используется примерно так "istask.dll - > kernel32.dll, а не так istask.dll - > kernel32.dll - > taskkill.exe, то это уже совсем другое дело. Ещё раз Спасибо! А что насчёт http://forum.oszone.net/post-1946494-388.html этого вопроса, есть какие нибудь варианты? |
Отправлено: 17:29, 05-07-2012 | #381 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Ваня
код: скрин: архив со всем необходимым: http://rghost.ru/private/39052497/4e...6d5eb1311ede98 =============================================================== FMA, тебе не хватет флага припиши ... ; Flags: foldershortcut у тебя стоит {commondesktop} ты уверен, что на общем рабочем столе ? {userdesktop} - текущего пользователя а также вот тебе русская справка http://sendfile.su/570136 |
Последний раз редактировалось Johny777, 05-07-2012 в 17:56. Отправлено: 17:31, 05-07-2012 | #382 |
Ветеран Сообщения: 608
|
Source: BmpFiles\fon.bmp; DestDir: {app}; Attribs: hidden system;
Source: BmpFiles\fonAC.bmp; DestDir: {app}; Attribs: hidden system; Johny777, а как загрузить 2 картинки на InitializeUninstallProgressForm(); пробую так неполучается ![]() |
Последний раз редактировалось Ivan_009, 11-08-2012 в 07:16. Отправлено: 19:30, 05-07-2012 | #383 |
Ветеран Сообщения: 608
|
Как сделать двойной прогресс бар тоесть вот такой через IsDone
![]() |
Последний раз редактировалось Ivan_009, 11-08-2012 в 07:16. Отправлено: 21:58, 05-07-2012 | #384 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Ваня,
( Кстати! Оказывается очень удобно использовать для некоторых картинок секцию Setup ![]() тк нет лишней писанины с добавлением картинок в секцию Files и их перемещением в темп. как чуть ниже ) поэтому так (приписал немного комментариев) и, Вань, зачем тебе 2 картинки? склей в фотошопе в одну (Создать - новый фон (настранваешь цвет фона и указываешь размер) - перетаскиваешь обе картинки на этот самый фон - растягиваешь и двигаешь до получения желаемого результата - нажимаешь инструмент "Перемещение(V)" и при необходимости инструментом "Рамка (С)" кадрируешь (вырезаешь нужный участок)- сохраняешь в 32-битном(!).bmp - файле) юзаю версию 5.1 (русскую) Цитата Ivan_009:
исдан не знаю ![]() ------------------------------------------------------------------------------------Update понял как добавлять картинки через Setup пример в ...\Inno Setup 5\Examples\Example_BitmapResource.iss прояснил ситуацию! сократил код улучшенный результат: изменённые строки выделил жирным (3 строки) |
|
Последний раз редактировалось Johny777, 06-07-2012 в 13:08. Отправлено: 22:48, 05-07-2012 | #385 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать 1. Переделал "проценты установки" под CallbackAddr
теперь библиотека "InnoCallback.dll" не нужна (нужна только расширенная версия Inno) было так: стало так: Примечание: кто не хочет отображения десятой доли процента после запятой удалите функцию function NumToStr(Float: Extended): String; begin ... end; и замените в процедуре procedure PercentsProc; NumToStr на IntToStr =========================================================================================== 2. может кто пожалуйста избавить это код от InnoCallBack.dll (при перетаскивании основного окно перетаскивается форма) речь идёт о функции: function WndProcCallBack(P:TCallbackProc;ParamCount:integer ):LongWord; external 'wrapcallback@files:innocallback.dll stdcall'; ================================================================================= 3. и последнее: Скажите пожалуйста (если можно попроще) когда нужно (лучше?) использовать указатель nil в Inno и на что он влияет? (из интереса присвоил всем элементам (ричэдитам, панелям, чекбосам) этот указатель и теперь инсталл кушает на 400 кб оперативки меньше ![]() |
Последний раз редактировалось Johny777, 07-07-2012 в 13:50. Отправлено: 15:27, 06-07-2012 | #386 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
Цитата Johny777:
|
||
Отправлено: 11:36, 07-07-2012 | #387 |
Ветеран Сообщения: 608
|
Как в данном модуле удалить все ненужное и оставить только те функции которые нужны данной кнопке....
![]() |
Последний раз редактировалось Ivan_009, 11-08-2012 в 07:16. Отправлено: 21:07, 07-07-2012 | #388 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Цитата Ivan_009:
всё в одном коде архив http://rghost.ru/private/39092559/fc...d1fb7dd0472c5b код: |
|
Отправлено: 23:15, 07-07-2012 | #389 |
Ветеран Сообщения: 717
|
Профиль | Отправить PM | Цитировать Может кто еще пользуется botva2.dll
Хочу разрисовать прогрессбар при джеинсталляции Но что то не так видимо делаю. Затык на функции CallWindowProc(PBOldProcUn,h,Msg,wParam,lParam); Вызывает ошибку вызова процедуры Вот кусок кода, может подскажете, в чем ошибка. function CallBackProc(P:TPBProc;ParamCount:integer):LongWord; external 'wrapcallbackaddr@files:CallbackCtrl.dll stdcall'; function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall'; function GetTickCount: DWORD; external 'GetTickCount@kernel32.dll stdcall'; function GetTickCountUn: DWORD; external 'GetTickCount@kernel32.dll stdcall uninstallonly'; ... ... function PBProcUn(h:hWnd;Msg,wParam,lParam:Longint):Longint; var lt:Longint; dt,at,pr,i1,i2:Extended; p:string; tc:DWORD; begin Result:=7; Result:=CallWindowProc(PBOldProcUn,h,Msg,wParam,lParam); if (Msg=$402) and (UninstallProgressForm.Progressbar.Position>UninstallProgressForm.Progressbar.Min) then begin i1:=UninstallProgressForm.Progressbar.Position-UninstallProgressForm.Progressbar.Min; i2:=UninstallProgressForm.Progressbar.Max-UninstallProgressForm.Progressbar.Min; tc:=GetTickCountUn; if (tc-eTimeUn)>=1000 then begin dt:=(tc-sTimeUn)/1000; at:=i2*dt/i1; lt:=Round(at-dt) TimeLeftLabel.Caption:='Îñòàëîñü - '+LongintToStringTime(lt); eTimeUn:=tc; end; pr:=i1*100/i2; p:=' - ['+Format('%f',[pr])+'%]'; StringChange(p,',','.'); TimeLeftLabelUn.Caption:=WFCaption+p; WizardForm.Caption:=WFCaption+p; ImgPBSetPosition(NewPBun,pr); ImgApplyChanges(UninstallProgressForm.Handle); end; end; ... ... procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var Names: TArrayOfSting; I, Errorcode: Integer; S,RegAss: String; begin if CurUninstallStep=usUninstall then begin NewPBun:=ImgPBCreate(UninstallProgressForm.InstallingPage.Handle, ExpandConstant('{tmp}\pbbkg.png'), ExpandConstant('{tmp}\pb.png'),UninstallProgressForm.Progressbar.Left,UninstallProgressForm.Progressbar.Top,UninstallProgressForm.Progressbar.Width,25); ImgApplyChanges(UninstallProgressForm.InstallingPage.Handle); WFCaption:=UninstallProgressForm.Caption; TimeLeftLabelUn:=TLabel.Create(nil); with TimeLeftLabelUn do begin Parent:=UninstallProgressForm.InstallingPage; AutoSize:=False; SetBounds(ScaleX(400),ScaleY(150),ScaleX(400),ScaleY(21)); Transparent:=True; Font.Color:=clWhite; Font.Style:= [fsBold]; end; sTimeUn:=GetTickCountUn; eTimeUn:=sTimeUn; PBOldProcUn:=SetWindowLong(UninstallProgressForm.InstallingPage.Handle,-4,CallBackProc(@PBProcUn,4)); end; |
Отправлено: 10:39, 08-07-2012 | #390 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|