Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.
Если коротко:
3.хх — полноценная поддержка Unicode.
2.48 и ниже — только ANSI. »
Шта ?! :o
2.48 и ниже Юникод также поддерживают по полной и лучше чем 3.0 (!)
2.48 сейчас уже в юнике выйти должна..
Различия в версиях 2х и 3х, только в ориентире 3-й на УГ ОСи Мелкософта, Вин7, 8, 10...
MaGoth, прежде чем нести ахинею, почитайте историю официальных релизов.
Версия 3.0 альфа (релиз 19 мая 2013), цитата
"MakeNSIS can now generate ANSI and Unicode installers. Source files can be UTF8SIG, UTF16BOM or traditional MBCS text files (which are converted to Unicode with ACP unless you specify a different codepage). The default plugins are now stored in sub-folders based on their CPU target and character set encoding."
Эм. т.е. я по твоему не в официальном работаю 2.46.5 Unicode ?! :)
Наверное вся разница в том, что версии 2.46 - две: ANSI и Unicode
А версия 3 - одна, совмещающая обе кодировки + якобы адаптирована под новые ОС + учтены баги (выявленные) v2.46...
я по твоему не в официальном работаю 2.46.5 Unicode ? »
Да! Это сторонняя разработка на базе исходного кода NSIS - форк. Разработчики официальной версии NSIS никакого отношения к вашей 2.46.5 Unicode не имеют, не развивают её и не разрабатывают. Загляните в репозитарий официальной разработки NSIS на sourceforge (http://sourceforge.net/projects/nsis/files/NSIS%202/) и найдите там вашу 2.46.5 Unicode.
А версия 3 - одна, совмещающая обе кодировки »
Верно. Версия 3 позволяет создать инсталлятор как в кодировке ANSI, так и в Unicode. :)
Да! Это сторонняя разработка на базе исходного кода NSIS - форк. »
Это тоже самое сказать что бывший разраб Пираний, НикоДЕ, выпуская свой софт теперь для одной игры, от этого становится неофициальным разрабом..
Ибо, идём на страничку разрабов "оригинальной" версии Нсис, Project Members (http://sourceforge.net/p/nsis/wiki/Home/) и видим на ней в числе разрабов этого товарища: Jim Park.
А теперь идем на страницу репозитария Гитхаба для Юникодного Нсис: jimpark/unsis (https://github.com/jimpark/unsis) и наблюдаем там же в авторах, все того-же самого Джима.
Очень странное утверждение, когда разраб один, а разработка сторонняя...
Очень странное утверждение, когда разраб один, а разработка сторонняя... »
Это не мое утверждение. Так написано на главной страничке NSIS. :)
Натолкнулся на статью : Почему вам (никогда) не следует использовать ShellExecute и WinExec
http://www.gunsmoker.ru/2015/01/never-use-ShellExecute.html
Вот те раз...
Говоря кратко: ShellExecute и WinExec - это устаревшее *овно мамонта начала 90-х годов. Они созданы в действительно доисторические времена. 640 Кб. Сегменты. Ближние и дальние указатели. Нет виртуальной памяти. Кооперативная многозадачность. Эти функции устарели в 1995 году. Ни один код, написанный после 1995 года, не должен использовать эти функции.
Правильное решение
Ответ: вместо функции ShellExecute следует использовать функцию ShellExecuteEx, а вместо функции WinExec следует использовать функцию CreateProcess.
Говоря кратко: ShellExecute и WinExec - это устаревшее говно мамонта начала 90-х годов. Они созданы в действительно доисторические времена. 640 Кб. Сегменты. Ближние и дальние указатели. Нет виртуальной памяти. Кооперативная многозадачность. Эти функции устарели в 1995 году. Ни один код, написанный после 1995 года, не должен использовать эти функции.
Вообще без комментариев. Думаешь, есть прогеры, которые пользуются функцией WinExec? Сколько ей лет?
Такое ощущение, что автор застрял в каком-то прошлом типа 90-го года, тогда был программистом, а потом уснул, проснулся тем же программистом в 2015 году и написал сразу же статью, чтобы предостеречь современных прогеров от использования WinExec в своём коде
Как мы знаем, в современных 32-битных (и выше) Windows (т.е. Windows 95 и старше)
Может, мой мозг неправильно понимает суть написанного предложения, но я понял это как:
Windows 95 - современная
Натолкнулся на статью »
Сделай вид, что не видел её
есть прогеры, которые пользуются функцией WinExec? »
Гы... В прошлом году здесь упоминали. Для запуска батника с скрытым окном консоли.
System::Call 'kernel32.dll::WinExec(t "$EXEDIR\My.bat", i 0) i.r0'
И ведь работает... :)
Гы... В прошлом году здесь упоминали »
Я не про NSIS со всякими обходными путями решения, я про прогеров, пишущих на нормальном языке типа с++
В винде куча функций типа WinExec, которые давно устарели и существуют только в целях совместимости при переходе из оси в ось
И ведь работает... »
execshell open "$desktop\1.bat" "" SW_HIDE
и ведь это тоже работает...но кому-то проще было заюзать винапи :)
ZaxBoys66
21-12-2015, 20:09
Please help my with this script
How can I synchronize percentage at the same time progress bar.
ZaxBoys66,
Use http://nsis.sourceforge.net/Inetc_plug-in
inetc::get /caption "2005 report" /canceltext "interrupt!" "http://download.ap.bittorrent.com/track/stable/endpoint/utorrent/os/windows" "$EXEDIR\uTorrent.exe" /end
Pop $1 # return value = exit code, "OK" means OK
MessageBox MB_OK "Download Status: $1"
Друзья! Вот такой к вам вопрос:
Можно ли добавлять кликабельные ссылки в MessageBox ?
Например всплывает мессадж с ошибкой и там ссылка на страницу с подробным описанием ошибки и методами её исправления.
Можно ли добавлять кликабельные ссылки в MessageBox ? »
Нет.
Но, можно сделать собственный MessageBox - окно нужного размера, с кликабельными ссылками, с нужными элементами управления и пр. содержимым.
Можно использовать messagebox plugin, скомпоновав messagebox таким образом, чтобы в нём был и нужный текст
и кнопка(и) с надписью-ссылкой, кликнув которую, открываешь нужную страницу.
Или, самое простое - обычный MessageBox , с текстом-описанием ошибки и заключительный вопрос : "Открыть такую то страницу для детальной информации об ошибке ?" + кнопки "Да" "Нет"
Можно использовать messagebox plugin, скомпоновав messagebox таким образом, чтобы в нём был и нужный текст
и кнопка(и) с надписью-ссылкой, кликнув которую, открываешь нужную страницу. »
А где найти данный плагин и будет ли он работать с третьей версией НСИС?
http://nsis.sourceforge.net/MessageBox_plug-in
как я понимаю автор сам удалил свою разработку...
Sancho5555
25-12-2015, 13:19
Serg866,
С третьей плагин работает.
Собственные MessageBox (с кликабельными ссылками и пр.) можно делать с помощью DlgHost Plugin_а
http://nsis.sourceforge.net/File:DlgHostPlugin.zip
Пример :
!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 включено в код.
Вопрос имеется.
Есть ли какая-то специфика в создании ярлыка для раб стола и меню пуска, и прикручивании к нему определенной иконки ?!
Ибо сделал у себя работает у других нет. :dont-know
Есть ли какая-то специфика в создании ярлыка для раб стола и меню пуска, и прикручивании к нему определенной иконки ?! »
Всё как всегда... :
CreateShortCut "$DESKTOP\Your Program.lnk" "$INSTDIR\Your Program.exe" "" "$INSTDIR(or FullPatch)\myicon.ico"
Ну, и конечно при необходимости :
SetShellVarContext all
или
SetShellVarContext current
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC