.: NSIS - все вопросы :. часть 2.

Ответить
 • Просмотры: 49
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

AlekseyPopovv,

Решением, думаю, стоит поделиться -- может ещё сгодится кому-нибудь.
Аватара пользователя
AlekseyPopovv

Re: .: NSIS - все вопросы :. часть 2.

Сообщение AlekseyPopovv »

iglezz, Придумал сам, может есть что то лучше и проще...



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Replay:
ExecWait "Proga\Proga.exe"
Sleep 50
${If} ${ProcessExists} "Proga.exe"
${KillProcess} "Proga.exe" $R0
Goto Replay
${Else}
Sleep 50
${EndIf}
Аватара пользователя
Cyberworm

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Cyberworm »

Цитата inco1:



Всем доброго времени суток.

В установщике с помощью ExecShell "open" "$INSTDIR\readme.txt" запускается текстовый документ. Но также продолжают срабатывать все последующие команды.

Как нужно сделать, чтобы после запуска этого документа следующие команды в установщике не запускались до тех пор, пока пользователь сам не закроет этот документ. Или это сделать не возможно?
.: NSIS - все вопросы :. часть 2.




ExecWait '"$WINDIR\Notepad.exe" "$INSTDIR\readme.txt"'

Либо, как ответил iglezz, ExecShellWait, тогда запустится ассоциированная с txt программа.
Аватара пользователя
Cyberworm

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Cyberworm »

iglezz, Спасибо. Это именно то, что мне нужно. Потратил час на поиск в справке и не нашел, а вы мне за 3 минутки.

Begin2Fly, Благодарю. Экспериментну с обеими вариантами.
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

Cyberworm, Что-то я слона сразу не приметил Изображение

HKEY_LOCAL_MACHINE\ удалить надо.



Какие, кстати? версия NSIS и разрядность Steam и Windows?
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

Только что проверил. Как-то непонятно этот InstallDirRegKey работает - из HKCU читает, а из HKLM - нет



Обходной путь - установка значения $INSTDIR в .onInit:


Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Name "RegReadTest"
Unicode true
RequestExecutionLevel admin
SetOverwrite on
SetCompressor  LZMA
OutFile "RegReadTest.exe"
page directory 
page instfiles
Function .onInit
	SetRegView 64
	Push $0
	ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver" "InstallLocation"
	IfErrors 0 +3
		MessageBox MB_OK "Программа ХХХ не установлена!"
		Quit
	StrCpy $INSTDIR $0
	Pop $0
FunctionEnd
Section ""
	MessageBox MB_OK "Установка в папку:$\n $INSTDIR"
SectionEnd
Аватара пользователя
Cyberworm

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Cyberworm »

iglezz, С антивирусниками ясно, но думается мне, что не разрешимо. Код сгодиться? Ничего править не нужно?
Аватара пользователя
mss307

Re: .: NSIS - все вопросы :. часть 2.

Сообщение mss307 »

Всем привет.



Возникла следующая проблема:



Необходимо задать картинку в качестве MUI_HEADERIMAGE_BITMAP. С этим проблем нет. Картинка строго по ширине окна инсталлятора.



После попытки задать $mui.Header.Text и $mui.Header.SubText они становятся невидимыми. Это тоже не проблема, обошел примерно так:

GetDlgItem $8 $HWNDPARENT 0x416 ; Header image

GetDlgItem $9 $HWNDPARENT 0x40A ; Header

System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) \

b ($8, $9, 0, 0, 497, 57, 0)"



Только при этом координаты Text и SubText хедера теперь не прижаты к левому краю.

Пытаюсь так менять координаты:

System::Call "*${stRECT} .r1"

System::Call "User32::GetWindowRect(i, i) i ($mui.Header.Text, r1) .r2"

System::Call "*$1${stRECT} (.r2, .r3, .r4, .r5)"

IntOp $6 $4 - $2

IntOp $7 $5 - $3

System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) \

b ($mui.Header.Text, 0, 20, 15, ir6, ir7, 0" ;



Если задавать MUI_HEADER_TRANSPARENT_TEXT, то текст не отображается. В противном случае, текст отображается только после возврата на страницу со следующей. Также надписи накладываются друг на друга.



Для текста цвета задаются так:

CreateFont $2 "$(^Font)" "9" "700"

SendMessage $mui.Header.Text ${WM_SETFONT} $2 0

SetCtlColors $mui.Header.Text "0x0F0FAF" "transparent"



Был бы благодарен за помощь!
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

mss307, лучше код привести того, что не получается вместо этих обрывков, ибо есть подозрение на велосипедостроение..
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

Если я вас еще не утомил, то, пожалуйста помогите еще с одним вопросом.

Как бы мне этак прописать. чтобы в самом начале запуска установщика была проверка учетной записи, и если учетка "пользователь" или "гость", даже, если запуск с правами администратора, то показывалось бы сообщение, что Вы, мил человек имеете совсем мало прав" и установка закончилась не начинаясь?.
Ответить

Вернуться в «Автоматическая установка приложений»