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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :.

Закрытая тема
Настройки темы
[архив].: NSIS - все вопросы :.

Аватара для kotkovets

Ветеран


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


Конфигурация

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


Изменения
Автор: volk1234
Дата: 09-12-2012
Описание: перевод темы в архив.
Тема закрыта!
Лимит страниц.
Продолжение тут:
.: NSIS - все вопросы :. часть 2.
Старая шапка:
читать дальше »

Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения.

Описание:
читать дальше »
NSIS (Nullsoft Scriptable Install System) - профессиональная система для создания инсталляторов в среде Windows с октрытым исходным кодом. При своем малом размере система очень гибкая, и при с широкими возможностями. Генерируемый ею инсталлятор также имеет очень маленький размер и идеально подходит для распространения продукта через Интернет.


Текущая версия: 2.46 от 6 декабря 2009 года
Скачать | Архив сборок версии 2 | Архив сборок версии 1

ВНИМАНИЕ! Созданный в NSIS инсталлятор является ANSI-приложением. Есть возможность использовать UNICODE-сборку системы, но при этом ваши дистрибутивы не будут работать в ANSI-системах, таких, как Windows 9x. Для загрузки UNICODE-сборки системы посетите сайт: http://www.scratchpaper.com/

ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов:
Справочник по NSIS - создан силами нашего сообщества.
Руководство пользователя. Перевод – Поляков А.В, зеркало

Документация

Утилиты разработчика
Расширение функциональности
читать дальше »

Плагины и полезности к NSIS: http://nsis.sourceforge.net/Category:Plugins

Интерфейс Venis GUI: http://www.spaceblue.com/products/venis
Интерфейс ExperienceUI GUI http://experienceui.xx0r.info/oldeng...erienceui/home
Пример:


Интерфейс SkinCrafter Plugin - http://www.skincrafter.com/
Пример:

Инструкция по использованию от K.A.V.

Примеры скриптов на нашем форуме
Скрипт NSIS для перепаковки AIMP2+Сборки
Тема для Notepad++(пример парсинга XML)

Достоинства
читать дальше »


◦ Очень маленький размер установочного блока (около 34 Кбайт)
◦ zlib, bzip2 и LZMA-сжатие
◦ Гибкая система скриптов (спецально разработанная для инсталляторов)
◦ Поддержка многоязычности, точнее 53 языка, есть возможность ввода нового языка
◦ Поддержка плагинов
◦ Скрипт Препроцессор
◦ Создание Web-инсталляторов

Ещё немного полезной информации:
читать дальше »

▫ История создания установщика

NSIS создан как альтернатива InstallShield, предназначенного для коммерческих продуктов.

NSIS был создан для распространения Winamp. Он базируется на предыдущем продукте Nullsoft — PiMP (plugin Mini Packager), иначе известным как SuperPiMP. После версии 2.0a0, проект был перемещён на SourceForge.net, где к работе над ним присоединились и сторонние разработчики. NSIS 2.0 был выпущен в свет 2 года спустя.

NSIS версии 1 был очень похож на классический Windows Installer, но он был более управлемым с помощью скриптов и поддерживал другие форматы сжатия. NSIS версии 2 поддерживает новый графический интерфейс пользователя, LZMA-сжатие, многоязычность и имеет хорошую систему плагинов.

Версия 2.01 была первой версией, поддерживающей компиляцию на любой из POSIX-платформ. Это позволило создавать Windows-инсталляторы на GNU/Linux и FreeBSD без использования эмулятора Wine. На данный момент поддерживается компиляция только для Windows.

▫ Описание

Компилятор NSIS — программа makensis — компилирует скрипты в исполняемый код. Каждая строчка скрипта содержит одну команду. Пример:
Код: Выделить весь код
 # Пример скрипта
 Name "Example1"
 OutFile "example1.exe"
 InstallDir "$PROGRAMFILES\Example1"
 Page Directory
 Page InstFiles
 Section
   SetOutPath $INSTDIR
   File ..\makensis.exe
 SectionEnd

Modern User Interface

В версии 2.0 был введён новый графический интерфейс пользователя, названный Modern UI (MUI). MUI очень похож на интерфейс мастеров, он поддерживает splash screen, выбора языка, выбор компонентов для установки и более широкие возможности настройки по сравнению со своим предшественником. Пример:
Код: Выделить весь код
 # Пример скрипта с Modern UI
 !include MUI.nsh
 Name "Example 2"
 OutFile Example2.exe
 !insertmacro MUI_PAGE_WELCOME
 !insertmacro MUI_PAGE_LICENSE "license.rtf"
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_COMPONENTS
 !insertmacro MUI_PAGE_INSTFILES
 !insertmacro MUI_PAGE_FINISH
 !insertmacro MUI_LANGUAGE "English"
 !insertmacro MUI_LANGUAGE "German"
 !insertmacro MUI_LANGUAGE "French"
 Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
 SectionEnd
NSIS может быть расширен при помощи плагинов, которые могут быть написаны на C++, Си, и Delphi. Плагины могут быть использованы для улучшения функциональности и интерфейса инсталлятора. Плагины могут быть вызваны в любой части кода NSIS скрипта.

С пакетом NSIS поставляются несколько плагинов, позволяющих добавлять новые страницы, заменять фоновые изображения, скачивать файлы из Интернета, выполнять математические вычисления, обновлять файлы и многое другое.

▫ Программы, использующие NSIS


◦ Антивирус Касперского
◦ Qip
◦ 3DNA Desktop
◦ 7-Zip
◦ ATI Display Driver
◦ CDex
◦ Dev-C++
◦ DivX
◦ eMule FileZilla
◦ Google Picasa
◦ Google Talk
◦ Intel C (компилятор)
◦ IrfanView
◦ LightAllow
◦ LyX
◦ Miranda IM Mozilla Firefox 2.0
◦ NASA World Wind
◦ Notepad++
◦ OpenOffice.org для Windows
◦ Pidgin
◦ VLC Player
◦ Winamp

● Чем я могу распаковать инсталлятор, созданный в NSIS?

В настоящее время инсталляторы NSIS не могут быть полностью декомпилированы. Сам инсталлятор не содержит в себе никаких функций для того, чтобы извлечь сценарий и/или файлы без инсталляции. Это - выбор разработчика, доступны ли исходный текст и/или файлы для инсталлятора для публики или нет. Есть, однако, внешние инструментальные средства, которые позволяют это сделать. 7-zip поддерживает частичную распаковку NSIS инсталляторов с алгоритмом сжатия lzma или bzip. Так же существует мульти-архивный плагин для TotalCommander.
Небольшая заметка для разработчиков: используйте DCryptDll, если хотите скрыть некоторые файлы в вашей инсталляции.


===========
тема прикрепляется, шапка будет дорабатыватся... Volk1234, hb860

Отправлено: 23:35, 17-06-2006

 

Аватара для kotkovets

Ветеран


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

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


Цитата wolkow70:
В принципе работает, если AIMP3 установлен по дефолтному пути, а если нет? »
программа портабельная, настройки в реестре не хранит.
Если чешется можно искать файлы/настройки по всему компу...
Вопрос в том, сколько времени это займет...
Цитата wolkow70:
Как можно вычислить директорию установки и локацию dll-файла для задания комманд удаления и дерегистрации? »
Сканируйте реестр при регистрации dll - вы найдете путь к dll, а из пути dll через
GetParent(смотрите справку) - папку программы
Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32] 
@="C:\\AIMP3\\Modules\\aimp_menu32.dll"
Цитата wolkow70:
И еще вопрос: Вы обещали сообщить, что выяснится с дерегистрацией aimp_menu64.dll? »
Пробуйте запускать исполняемый файл программы ключами:
AIMP3.exe /REG=MENU --> контекстное меню файлов (регистрация dll, независимо от системы)
AIMP3.exe /REG=R --> ассоциация файлов с AIMP3 (независимо от системы)
AIMP3.exe /REG=UALL --> разрегистрирует dll и уберет ассоциации файлов. (независимо от системы)
Вроде бы все просто и достаточно прозрачно.

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 24-01-2012 в 14:34.


Отправлено: 14:22, 24-01-2012 | #2231



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для wolkow70

Ветеран


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

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


Пока не придумал ничего другого, чем взять путь из CLSID

ReadRegStr $0 HKLM "SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32" ""
StrCpy $DllPath $0
;
regdll "$DllPath" ContextMenuAddonUnregister
DeleteRegKey HKLM "SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}" ""
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "{1F77B17B-F531-44DB-ACA4-76ABB5010A28}"

-------
Человек человеку - друг, товарищ и волк!


Последний раз редактировалось wolkow70, 24-01-2012 в 14:37.


Отправлено: 14:22, 24-01-2012 | #2232


Аватара для wolkow70

Ветеран


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

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


Искать путь к AIMP3.exe через DLL не надежно, программа может быть установлена и без регистрации контекста.

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 14:37, 24-01-2012 | #2233


Новый участник


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

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


Ситуация такая. На компьютере у пользователя стоит программа. Я ставлю точно такую же, но другой версии. Нужно сравнить версии программы на компе и той, что я ставлю. Если у пользователя версия новее - просот обрубаем инсталятор, если новее моя - удаляем старую и ставим мою. С этим проблем нет. И с определением версии программы на комьютере проблем нет(просто посмотрим в реестре), а вот как узнать версию инсталируемого продукта (чтобы провести сравнение)?
P.S. В скрипт версию хардкодить нельзя.

Отправлено: 15:52, 25-01-2012 | #2234

MKN MKN вне форума

Ветеран


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

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


Paval,
Возможно так :
Код: Выделить весь код
!include "FileFunc.nsh"

Section
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\App1" "DisplayVersion"
MessageBox MB_OK "Версия установленной программы $R0"

${GetFileVersion} "App2.exe" $R1 
MessageBox MB_OK "Версия устанавливаемой программы $R1"

;затем сравниваем значения переменных (здесь тоже могут быть варианты, в зависимости от нумерации и пр.) , и т.д.
SectionEnd
App2.exe может находиться рядом с скриптом.
(Если же инсталлятор устанавливаемой программы, бестолковый, т.е. версия не указана, то придётся предварительно распаковать эту прогу в Temp и фиксировать версию исполняемого файла или ещё какого-нибудь с признаком версии...)

Последний раз редактировалось MKN, 25-01-2012 в 16:46.


Отправлено: 16:40, 25-01-2012 | #2235


Новый участник


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

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


Цитата MKN:
Paval,
Возможно так :
Код:
!include "FileFunc.nsh"
Section
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\App1" "DisplayVersion"
MessageBox MB_OK "Версия установленной программы $R0"
${GetFileVersion} "App2.exe" $R1
MessageBox MB_OK "Версия устанавливаемой программы $R1"
;затем сравниваем значения переменных (здесь тоже могут быть варианты, в зависимости от нумерации и пр.) , и т.д.
SectionEnd
App2.exe может находиться рядом с скриптом. »
Интересно, а откуда на компьютере у пользователя появиться файл App2.exe ?

P.S. Мне рекомендовали передавать версию через параметры. (я так понимаю командной стороки). Только хз как их задать.

Отправлено: 17:06, 25-01-2012 | #2236

MKN MKN вне форума

Ветеран


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

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


Цитата Paval:
Интересно, а откуда на компьютере у пользователя появиться файл App2.exe ? »
Ты не внятно ставишь задачу. Понимать можно всяко :
Цитата Paval:
На компьютере у пользователя стоит программа. Я ставлю точно такую же, но другой версии. »
Расшифруй, где и что ты ставишь.

Отправлено: 17:11, 25-01-2012 | #2237


Аватара для wolkow70

Ветеран


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

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


Цитата kotkovets:
AIMP3.exe /REG=MENU --> контекстное меню файлов (регистрация dll, независимо от системы)
AIMP3.exe /REG=R --> ассоциация файлов с AIMP3 (независимо от системы)
AIMP3.exe /REG=UALL --> разрегистрирует dll и уберет ассоциации файлов. (независимо от системы)
Вроде бы все просто и достаточно прозрачно. »
Мы же не ищем легких путей .
Сделал так:

Код: Выделить весь код
Function .OnInit
;
StrCpy $SysDrive $WINDIR 2
;
${If} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.exe"
${OrIf} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.INI"
${OrIf} ${FileExists} "$PROGRAMFILES\AIMP3\profile\AIMP3.INI"
${OrIf} ${FileExists} "$PROGRAMFILES\AIMP3\profile\AIMP3_MENU.INI"
${OrIf} ${FileExists} "$PROGRAMFILES\AIMP3\Modules\aimp_menu32.dll"
${OrIf} ${FileExists} "$PROGRAMFILES\AIMP3\Modules\aimp_menu64.dll"
;
${OrIf} ${FileExists} "$SysDrive\AIMP3\AIMP3.exe"
${OrIf} ${FileExists} "$SysDrive\AIMP3\AIMP3.INI"
${OrIf} ${FileExists} "$SysDrive\AIMP3\profile\AIMP3.INI"
${OrIf} ${FileExists} "$SysDrive\AIMP3\profile\AIMP3_MENU.INI"
${OrIf} ${FileExists} "$SysDrive\AIMP3\Modules\aimp_menu32.dll"
${OrIf} ${FileExists} "$SysDrive\AIMP3\Modules\aimp_menu64.dll"
;
${OrIf} ${FileExists} "$APPDATA\AIMP3\AIMP3.INI"
${OrIf} ${FileExists} "$APPDATA\AIMP3\AIMP3_MENU.INI"
${OrIf} ${FileExists} "$INSTDIR\AIMP3.INI"
${OrIf} ${FileExists} "$INSTDIR\profile\AIMP3.INI"
${OrIf} ${FileExists} "$INSTDIR\AIMP3\AIMP3.INI"
;
       MessageBox MB_OKCANCEL|MB_USERICON|MB_TOPMOST "ВНИМАНИЕ!$\n\
$\nAIMP3 уже установлен, или на вашем компьютере есть настройки этого приложения. \
$\nДанный инсталлятор не может быть использован поверх уже установленного AIMP3. \      
$\nПри нажатии кнопки 'Ok' будет произведено полное удаление предыдущей установки \ 
$\nи выполнена новая установка AIMP3. \
$\nПри нажатии кнопки 'Отмена' установка AIMP3 будет отменена. \
$\nВыполнить новую установку AIMP3 ?" /SD IDOK IDCANCEL cancel
;
${If} ${RunningX64}  
	${If} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.exe" 
	${AndIf} ${FileExists} "$PROGRAMFILES\AIMP3\Modules\aimp_menu64.dll"
ExecWait "$\"$PROGRAMFILES\AIMP3\AIMP3.exe$\" /REG=UALL"
StrCpy $R1 "$PROGRAMFILES\AIMP3\Modules\aimp_menu64.dll"
	${Else}
ReadRegStr $1 HKLM "SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32" ""
StrCpy $R1 $1
regdll "$R1" ContextMenuAddonUnregister
	${EndIf}
${Else} 
	${If} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.exe" 
	${AndIf} ${FileExists} "$PROGRAMFILES\AIMP3\Modules\aimp_menu32.dll"
ExecWait "$\"$PROGRAMFILES\AIMP3\AIMP3.exe$\" /REG=UALL"
StrCpy $R1 "$PROGRAMFILES\AIMP3\Modules\aimp_menu32.dll"
	${Else}
ReadRegStr $1 HKLM "SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32" ""
StrCpy $R1 $1
regdll "$R1" ContextMenuAddonUnregister
	${EndIf}
${EndIf}
;
DeleteRegKey HKLM "SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}" ""
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "{1F77B17B-F531-44DB-ACA4-76ABB5010A28}"
;
ExecWait 'taskkill /F /IM explorer.exe' $0
DetailPrint "taskkill exit: [ $0 ]"
Sleep 500
StrCmp $0 0 0 +2
Exec "explorer.exe"
;
Delete "$R1"
;
${If} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.exe"
RMDir /r "$PROGRAMFILES\AIMP3"
${Else} 
${GetParent} "$R1" $2
StrCpy "$R2" $2
${GetParent} "$R2" $3
StrCpy "$R3" $3
RMDir /r "$R3"
${EndIf}
;
ReadRegStr $4 HKLM "SOFTWARE\Classes\CLSID\{0041494D-5033-4472-6F70-546172676574}\LocalServer32" "" 
StrCpy "$R4" $4
${GetParent} "$R4" $5
StrCpy "$R5" $5
RMDir /r "$R5"  
;
ReadRegStr $6 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AIMP3.exe" "" 
StrCpy "$R6" $6
${GetParent} "$R6" $7
StrCpy "$R7" $7
RMDir /r "$R7"
;
-прочие комманды удаления
;
SetShellVarContext current 
RMDir /r "$APPDATA\AIMP3"  
${EndIf}
FunctionEnd

-------
Человек человеку - друг, товарищ и волк!


Последний раз редактировалось wolkow70, 25-01-2012 в 17:25.


Отправлено: 17:18, 25-01-2012 | #2238


Аватара для kotkovets

Ветеран


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

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


Цитата Paval:
Нужно сравнить версии программы на компе и той, что я ставлю. Если у пользователя версия новее - просот обрубаем инсталятор, если новее моя - удаляем старую и ставим мою »
Сначала нужно получить версию программы, откуда получить?
1. Из реестра, текстового файла...
2. Из исполняемого файла программы, макросом GetFileVersion (FileFunc.nsh)
3. Затем сравниваем полученную версию программы и исходно устанавливаемую.
Код: Выделить весь код
!include "WordFunc.nsh"
!define version "1.1.3" ;исходно устанавлимая версия
;--
Section
  ;команды получения установленной версии
  ;к примеру мы получили версию в $1
  StrCpy $1 "1.1.0"
  ${VersionCompare} "$1" "${version}" $0
  ${If} $0 == 0
       MessageBox MB_OK "версии равны"
  ${ElseIf} $0 == 1
       MessageBox MB_OK "исходная версия, меньше полученной"
  ${ElseIf} $0 == 2
       MessageBox MB_OK "исходная версия, больше полученной"
  ${EndIf}
SectionEnd
Цитата Paval:
P.S. В скрипт версию хардкодить нельзя. »
здесь обсуждаются только скрипты NSIS, я правильно понял или мне телепатом становится
1. У вас есть некий установщик проги, назовем его Х, а скрипта нет.
2. Вы хотите написать скрипт, который заводит/отменяет установку X в зависимости от ваших условий.
Цитата wolkow70:
Мы же не ищем легких путей »
Зачем делать то, что можно делать ключами проги: легко и просто....смысла нет огород 0городить
Цитата kotkovets:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32]
@="C:\\AIMP3\\Modules\\aimp_menu32.dll" »
при первом GetParent будет --> C:\AIMP3\Modules
при втором GetParent будет --> C:\AIMP3 , и затем нужно удалить папку проги
Код: Выделить весь код
ReadRegStr $4 HKLM "SOFTWARE\Classes\CLSID\{0041494D-5033-4472-6F70-546172676574}\LocalServer32" "" 
${GetParent} "$4" "$4"
${GetParent} "$4" "$4"
RMDir /r "$4"
;--
 StrCpy $4 "C:\AIMP3\Modules\aimp_menu32.dll"
${GetParent} "$4" "$4"
  MessageBox MB_OK "$4" IDOK
${GetParent} "$4" "$4"
  MessageBox MB_OK "$4" IDOK

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 25-01-2012 в 19:02.


Отправлено: 17:34, 25-01-2012 | #2239


Аватара для wolkow70

Ветеран


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

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


Цитата kotkovets:
при первом GetParent будет --> C:\AIMP3\Modules
при втором GetParent будет --> C:\AIMP3 , и затем нужно удалить папку проги »
У меня так и сделано, только с большим количеством переменных:

ReadRegStr $1 HKLM "SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32" ""
StrCpy $R1 $1
regdll "$R1" ContextMenuAddonUnregister


${If} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.exe"
RMDir /r "$PROGRAMFILES\AIMP3"
${Else}
${GetParent} "$R1" $2
StrCpy "$R2" $2
${GetParent} "$R2" $3
StrCpy "$R3" $3
RMDir /r "$R3"
${EndIf}

Цитата kotkovets:
Зачем делать то, что можно делать ключами проги: легко и просто....смысла нет огород 0городить »
Для практики. И не доверяю я этим ключам. Кто его знает, что там написано.
Кстати, у меня применяется ключ, если программа установлена в директорию по умолчанию.
${If} ${FileExists} "$PROGRAMFILES\AIMP3\AIMP3.exe"
${AndIf} ${FileExists} "$PROGRAMFILES\AIMP3\Modules\aimp_menu32.dll"
ExecWait "$\"$PROGRAMFILES\AIMP3\AIMP3.exe$\" /REG=UALL"

-------
Человек человеку - друг, товарищ и волк!


Последний раз редактировалось wolkow70, 26-01-2012 в 06:06.


Отправлено: 05:59, 26-01-2012 | #2240



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. ssaram Программное обеспечение Windows 406 12-02-2022 19:45
WinstyleMonitor .:[все вопросы]:. Mr dUSHA Проект WinStyle 331 12-02-2014 13:15
Delphi - Delphi .: [все вопросы] :. Serega Программирование и базы данных 94 04-05-2013 18:45
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. Microsoft Windows 2000/XP 105 30-06-2010 11:58
Вопросы по создателю инсталляций NSIS MaxDELETE Программное обеспечение Windows 14 04-07-2007 10:01




 
Переход