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

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

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

Сообщение Salmo »

Цитата MKN:



Гы... В прошлом году здесь упоминали
.: NSIS - все вопросы :. часть 2.




Я не про NSIS со всякими обходными путями решения, я про прогеров, пишущих на нормальном языке типа с++

В винде куча функций типа WinExec, которые давно устарели и существуют только в целях совместимости при переходе из оси в ось




Цитата MKN:



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






Код:

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

execshell open "$desktop\1.bat" "" SW_HIDE

и ведь это тоже работает...но кому-то проще было заюзать винапи Изображение
Аватара пользователя
K.A.V.

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

Сообщение K.A.V. »

Please help my with this script



How can I synchronize percentage at the same time progress bar.
Аватара пользователя
kotkovets

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

Сообщение kotkovets »

ZaxBoys66,



Use
http://nsis.sourceforge.net/Inetc_plug-in





Цитата:



inetc::get /caption "2005 report" /canceltext "interrupt!" "
http://download.ap.bittorrent.com/track ... os/windows
" "$EXEDIR\uTorrent.exe" /end

Pop $1 # return value = exit code, "OK" means OK

MessageBox MB_OK "Download Status: $1"
Аватара пользователя
MKN

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

Сообщение MKN »

Salmo,

Попробуй



Код:

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

; RtlAdjustPrivilege  - Включает или выключает привилегию у вызывающего потока или процесса.
System::Call ntdll::RtlAdjustPrivilege(i20,i1,i0,*i)

потом уже убивай процесс



Только есть процессы , которым начхать на классические привелегии и права (к примеру, если "хозяин процесса" - TrustedInstaller... )
Аватара пользователя
K.A.V.

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

Сообщение K.A.V. »

Цитата Serg866:



Можно ли добавлять кликабельные ссылки в MessageBox ?
.: NSIS - все вопросы :. часть 2.




Нет.



Но, можно сделать собственный MessageBox - окно нужного размера, с кликабельными ссылками, с нужными элементами управления и пр. содержимым.



Можно использовать messagebox plugin, скомпоновав messagebox таким образом, чтобы в нём был и нужный текст

и кнопка(и) с надписью-ссылкой, кликнув которую, открываешь нужную страницу.



Или, самое простое - обычный MessageBox , с текстом-описанием ошибки и заключительный вопрос : "Открыть такую то страницу для детальной информации об ошибке ?" + кнопки "Да" "Нет"
Аватара пользователя
ZaxBoys66

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

Сообщение ZaxBoys66 »

Цитата MKN:



Можно использовать messagebox plugin, скомпоновав messagebox таким образом, чтобы в нём был и нужный текст

и кнопка(и) с надписью-ссылкой, кликнув которую, открываешь нужную страницу.
.: NSIS - все вопросы :. часть 2.




А где найти данный плагин и будет ли он работать с третьей версией НСИС?



http://nsis.sourceforge.net/MessageBox_plug-in


как я понимаю автор сам удалил свою разработку...
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
ZaxBoys66

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

Сообщение ZaxBoys66 »

ZaxBoys66,

Код:

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

!define BASS_LOC "$EXEDIR\bass.dll"
!define MP3 "$EXEDIR\demo.mp3"
!define BASS_SAMPLE_LOOP 4
OutFile "Bass_Test.exe"
Page instfiles
Section
  FindWindow $0 "#32770" "" $HWNDPARENT 
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_Init(i -1,i 44100,i 0,i r0,i n) b.r0'
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_Start() b.r0'
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_StreamCreateFile(b 0,t "${MP3}",i 0,i 0,i 0) i.r1' 
  System::Call /NOUNLOAD "${BASS_LOC}::BASS_ChannelFlags(i r1, i ${BASS_SAMPLE_LOOP}, i ${BASS_SAMPLE_LOOP}) i.R0"
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_ChannelPlay(i r1, b 0) i.R1'
SectionEnd
Function .onGUIEnd
  System::Call /NOUNLOAD "${BASS_LOC}::BASS_StreamFree(i) v (r1)"
  System::Call /NOUNLOAD "${BASS_LOC}::BASS_Stop() b () .r0"
FunctionEnd
Аватара пользователя
IgorV70

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

Сообщение IgorV70 »

Собственные MessageBox (с кликабельными ссылками и пр.) можно делать с помощью DlgHost Plugin

http://nsis.sourceforge.net/File:DlgHostPlugin.zip




Пример :





PHP код:

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

!include nsDialogs.nsh
OutFile "DlgHostDialog-test.exe"
Page custom MyPage
Page InstFiles
Var dlg
Var Link

!ifndef INC__DLGHOST_PLUGIN
!define INC__DLGHOST_PLUGIN 20110619
!define DLGHOST_DLGBOXMSG_INITDLG 0
!define DLGHOST_DLGBOXMSG_SHOWDLG 1
!endif

Function CloseDlgHostDialog
Pop $0
DlgHost::Close
FunctionEnd

Function ShowNSDChildDlg
GetFunctionAddress $0 MyMB
DlgHost::DlgBox "* $0 p 150u 100u Заголовок DlgBox"
FunctionEnd

Function MyPage
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateLabel} 125u 50u 80u 10u "MyPage"
nsDialogs::Show
FunctionEnd

Function MyMB
${Select} $0
${Case} ${DLGHOST_DLGBOXMSG_INITDLG}
nsDialogs::Create 1018
Pop $1
DlgHost::SetClient $1
    
${NSD_CreateLabel} 5u 5u 80u 25u "MessageBox Txt1$\nMessageBox Txt2$\nMessageBox Txt3"
Pop $1

${NSD_CreateLink} 5u 30u 80u 10u "MyLink"
Pop $Link
${NSD_OnClick} $Link ClickMyLink
        
${NSD_CreateButton} 25% 60% 45% 15u "&Close"
Pop $1
${NSD_OnClick} $1 CloseDlgHostDialog
    
${Case} ${DLGHOST_DLGBOXMSG_SHOWDLG}
nsDialogs::Show
${EndSelect}
FunctionEnd

Function ClickMyLink
ExecShell "open" "http://forum.oszone.net" 
FunctionEnd

Section
Call ShowNSDChildDlg
SectionEnd 






ShowNSDChildDlg вызываете ессно откуда надо и при необходимых условиях.

Содержимое DlgHost.nsh включено в код.
Аватара пользователя
MKN

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

Сообщение MKN »

ZaxBoys66,

Не все версии bass.dll нормально работают с NSIS ! Используй последние версии с
http://www.un4seen.com/


(я тестировал 2.4.10 и 2.4.11 )
Аватара пользователя
MKN

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

Сообщение MKN »

Цитата MaGoth:



Есть ли какая-то специфика в создании ярлыка для раб стола и меню пуска, и прикручивании к нему определенной иконки ?!
.: NSIS - все вопросы :. часть 2.




Всё как всегда... :

CreateShortCut "$DESKTOP\Your Program.lnk" "$INSTDIR\Your Program.exe" "" "$INSTDIR(or FullPatch)\myicon.ico"



Ну, и конечно при необходимости :

SetShellVarContext all

или

SetShellVarContext current
Ответить

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