Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата MKN:
И это не то... Он не реальное время отсчитывает, а просто циферки... »
Да гад ты, всё-таки заставил меня написать код
Я тебе его дал для создания отдельного потока, без которого обновлять элементы (менять циферки, пока идёт распаковка файлов к примеру) не получится

Короче вот смотри код, смотри на заголовок окна А там уже добавишь высчитывание диапазона времени, если нужно (плагином Time plug-in)

Код: Выделить весь код
; Script generated by the HM NIS Edit Script Wizard.

; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Моя программа"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "Моя компания, LLC."
!define PRODUCT_WEB_SITE "http://www.mycompany.com"

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include WinMessages.nsh
XPStyle on
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"

; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
#!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES

; Finish page
!insertmacro MUI_PAGE_FINISH

; Language files
!insertmacro MUI_LANGUAGE "Russian"


!include "FileFunc.nsh"
!insertmacro GetTime
var day 
var month 
var year 
var name_day 
var hour 
var minute 
var seconds
var HWND_Timer

; MUI end ------


Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "setup.exe"
InstallDir "$TEMP"
ShowInstDetails show


; Получаем Handle
Section -TEST

#GetDlgItem $HWND_Timer $HWNDPARENT 1028
#SendMessage $HWND_Timer ${WM_SETTEXT} "" "STR:TEST"

    GetFunctionAddress $0 FuncTimer
    ThreadTimer::Start /NOUNLOAD 1000 -1 $0
SectionEnd

Function FuncTimer
${GetTime} "" "L" $day $month $year $name_day $hour $minute $seconds
SendMessage $HWNDPARENT ${WM_SETTEXT} "" "STR:$hour:$minute:$seconds"
FunctionEnd




Section
sleep 2000  
SectionEnd
Section
sleep 100  
SectionEnd
Section
sleep 300  
SectionEnd
Section
sleep 499  
SectionEnd
Section
sleep 5000  
SectionEnd
Section
sleep 100  
SectionEnd
Section
sleep 2000  
SectionEnd
Section
sleep 300  
SectionEnd
Section
sleep 100  
SectionEnd





















Section -Post
SectionEnd

Это тебе как в пример, блин пока писал, ты тут понаписал много чего про цифры
Сейчас прочитаю и вникну в суть

---
Цитата MKN:
Может как то самим организовать отсчёт ? : для минут и секунд заявим 3 переменные, которые будут обозначать разряды времени :
$1 - десятки минут ( от 0 до 5 ), $2 - единицы минут (от 0 до 9), $3 - "сдвоенный" разряд, отсчёта секунд от 0 до 59.
и начнём посекундный отсчёт, с занесением ( и одновременно отображением) значений в эти переменные по следующей логике :
как только отсчёт секунд достигнет 59, через следующую секунду $3 обнуляется до 00 , а в $2 - разряда единиц минут заносится - 1, и отсчёт секунд начинается вновь c 00 до 59
Когда цикл счёта секунд до 59+1 вновь завершится, к единицам минут добавится ещё единичка и так до 9, после чего добавляется единица в разряд десятков минут, т.е. в $1.
И так до достижения 59 мин 59 секунд. А больше вообщем то и не надо, и такое то значение вряд ли когда понадобится на практике...
(хотя в идеале часы тоже надо бы учесть...) »
ё-моё, разве тот варинат, который я предложил, не устраивает???
Тот плагин "Time", там можно подсчитать разницу во времени, т.е. смотри:
запускается инсталлер - команда определения времени
в той функции, которую я тебе выше написал (для отображения часов в реальном времени) там прописываем команду на математическую операцию (из текущего времени вычитаем то, которое было на момент запуска инсталлера) и таким образом получаем то время, которое работает инсталлер на текущий момент
Решил изобрести велосипед??

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Последний раз редактировалось K.A.V., 16-02-2013 в 12:43.


Отправлено: 12:37, 16-02-2013 | #264