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

Компьютерный форум 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

 

Аватара для wolkow70

Ветеран


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

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


Ребята, опять заблудился.
Делаю сборку Opera.
Такие секции:


Function .onInit
StrCpy $SysDrive $WINDIR 2
StrCpy $1 ${Sec03}
FunctionEnd

Section "Многопользовательская установка" Sec03
SetOutPath "$INSTDIR"
WriteINIStr "$INSTDIR\operaprefs_default.ini" "System" "Multi User" "1"
SectionEnd
;
Section /o "Однопользовательская установка" Sec04
SetOutPath "$INSTDIR"
WriteINIStr "$INSTDIR\operaprefs_default.ini" "System" "Multi User" "0"
SectionEnd

Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${Sec03}
!insertmacro RadioButton ${Sec04}
!insertmacro EndRadioButtons
FunctionEnd


Кнопки 3 и 4 переключаются, но только не с первого раза. В первый клик кнопка 3 не выключается. Получаются обе секции включенными...

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


Отправлено: 07:29, 30-05-2011 | #1231



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

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


Аватара для kotkovets

Ветеран


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

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


wolkow70,
функцию .onInit переместите в скрипте - пропишите после всех секций, для корректного определения индетификаторов секций, вас же компилятор просит же...
для NSIS последовательность действий очень важна!

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:48, 30-05-2011 | #1232


Аватара для wolkow70

Ветеран


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

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


Сия Ваша рекомендация не помогла.

Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${ID_03}
!insertmacro RadioButton ${ID_04}
!insertmacro EndRadioButtons
!insertmacro StartRadioButtons $2
!insertmacro RadioButton ${ID_14}
!insertmacro RadioButton ${ID_15}
!insertmacro EndRadioButtons
FunctionEnd
;(ПОСЛЕ ВСЕ СЕКЦИЙ)
Function .onInit
StrCpy $SysDrive $WINDIR 2
StrCpy $1 ${ID_3}
StrCpy $2 ${ID_14}
FunctionEnd

Кнопки 14,15 вроде работают, а 3,4 как попало.

http://s013.radikal.ru/i323/1105/23/02a52b6d3be4.png

Иеще почему-то первую секцию цепляют, хотя она вообще не при чем...

Разобрался, мой косяк.
Перепутал в идентификаторах секций 03 и 3 , 04 и 4

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


Отправлено: 10:31, 30-05-2011 | #1233


Аватара для DruOleg

Старожил


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

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


2 вопроса:
1. необходимо в PHP-файл добавить строки. Нашел следующий способ:
Section
ClearErrors
FileOpen $0 $INSTDIR\config.php a
IfErrors done
FileWrite $0 "$$CFG->dbtype = '$DBtype'"
FileClose $0
done:
SectionEnd
Но в данном случае строки добавляются в начало файла сплошняком. Можно как то заставить его добавлять строки в конец файла, но не за пределами закрытия php-скрипта, т. е. перед "?>" ?

2. как добавить между строками разрыв (Enter)?
Спасибо!

Отправлено: 15:39, 01-06-2011 | #1234


Аватара для kotkovets

Ветеран


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

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


DruOleg, Вам уже не мало примеров приводили на макросе LineFind
В справке по индексу LineFind - читайте и изучайте
Цитата DruOleg:
добавлять строки в конец файла, но не за пределами закрытия php-скрипта, т. е. перед "?>" ? »
Пример все тот же на LineFind перед "?>" запишет nsis
Код: Выделить весь код
Function Replace
  ${If} $R9 == "?>"
  ${OrIf} $R9 == "?>$\r$\n"
  ${OrIf} $R9 == "?>$\r"
  ${OrIf} $R9 == "?>$\n"
    StrCpy $R9 "nsis$\r$\n?>$\r$\n"
    ;------
    ;------
    ;------
  ${EndIf}
  Push $0
FunctionEnd
Цитата DruOleg:
добавлять строки в конец файла »
Код: Выделить весь код
;---
FileSeek $0 0 End
FileWrite $0 "$\r$\n$$CFG->dbtype = '$$DBtype'$\n$\r"
Цитата DruOleg:
как добавить между строками разрыв (Enter)? »
$\n - переместить каретку на новую строку
$\r - переместить каретку на начало строки
$\n$\r - переместить каретку на начало новой строки
$\t - знак табуляции, клавиша <Tab>

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


Последний раз редактировалось kotkovets, 01-06-2011 в 21:54.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:03, 01-06-2011 | #1235


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


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

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


Kotkovets, посоветуй, пожалуйста, по следующим вопросам.

Для страниц инсталлятора я использую .ini файл с настройками элементов на странице.
Я нашел решение типа, где поля создаются напрямую в функции:

${NSD_CreateText} 0 20u 100% 15u "Здесь можно печатать..."
Pop $Text
${NSD_OnChange} $Text fnTextChange

Вопрос 1: как я могу присоединить функцию к событию элемента в моем случае

!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 2" "Flag" "DISABLED" - этот код почему то не делает не активным текстовое поле.

Вопрос 2: как изменить активность элемента?

У меня не получается прописать путь по умолчанию в текстовое поле кодом в функции страницы:
!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 1" "State" "C:\ProgramFolder"

Вопрос 3: как прописать текст в текстовое поле до отображения страницы?


Код скрипта в скрытом тексте
читать дальше »
!include "Library.nsh"
!include "sections.nsh"
!include "MUI.nsh"
!include "LogicLib.nsh"
!include "OLEDB.NSH"

Name "Declarant TS"
Caption "Установка программы Declarant TS"
OutFile "InstallDeclarantTS.exe"
InstallDir "C:\GTD"
ShowInstDetails show

!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_FINISHPAGE_NOAUTOCLOSE

Var IsInstallDB
Var ProgramFolderPath
Var DBFileFolderPath

Var ServerName
Var UserName
Var UserPathword
;Var ServerInstance

;----Страницы шагов--------
PageEx custom
PageCallBacks EnterWelcomePage LeaveWelcomePage
PageExEnd

PageEx custom
PageCallBacks EnterPathPage LeavePathPage
PageExEnd

PageEx custom
PageCallBacks EnterServerAdjustmentsPage LeaveServerAdjustmentsPage
PageExEnd

!insertmacro MUI_PAGE_INSTFILES
;---------------------------------

!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
!insertmacro MUI_LANGUAGE "Russian"

Function .onInit
InitPluginsDir
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "Welcome.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ProgramPath.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ServerAdjustments.ini"
FunctionEnd

Function CheckConnection

${OLEDB}::SQL_Logon "$ServerName" "$UserName" "$UserPathword"
Pop $0
${If} $0 == 0
MessageBox MB_OK "Соединение успешно установлено!"
${Else}
MessageBox MB_OK "Попытка соединения завершилась неудачно!"
${EndIf}

FunctionEnd

Section ""

detailprint "Подключение к серверу $ServerName"

${OLEDB}::SQL_Logon "" "" "" ;"$ServerName" "$UserName" "$UserPathword"
Pop $0
;${If} $0 == 1
DetailPrint $0
Pop $0
DetailPrint $0
;${EndIf}

${OLEDB}::SQL_ExecuteScript "test.sql"
Pop $0
;${If} $0 == 1
Pop $0
DetailPrint $0
;${EndIf}

detailprint ""
detailprint "Копирование файлов"
SetOutPath $ProgramFolderPath
File Files\Antlr3.Runtime.dll
File Files\Castle.Core.dll
File Files\Castle.DynamicProxy2.dll
File Files\Castle.DynamicProxy.dll
File Files\Core.dll
File Files\Core.Impl.dll
File Files\DBConnectionParameters.xml
File Files\Declaration.Domain.Impl.dll
File Files\Declaration.Presenters.Impl.dll
File Files\Declaration.Views.dll
File Files\Declaration.Views.Impl.dll
File Files\DeclarationElectronicCopy.dll
File Files\Domain.Impl.dll
File Files\Enums.dll
File Files\Events.dll
File Files\Handbooks.Domain.dll
File Files\Handbooks.Presenters.dll
File Files\Handbooks.Presenters.Impl.dll
File Files\Handbooks.Views.dll
File Files\Handbooks.Views.Impl.dll
File Files\Iesi.Collections.dll
File Files\Injection.dll
File Files\Injection.Impl.dll
File Files\local.hibernate.cfg.xml
File Files\log4net.dll
File Files\Main.Presenters.dll
File Files\Main.Presenters.Impl.dll
File Files\Main.Views.dll
File Files\Main.Views.Impl.dll
File Files\NHibernate.ByteCode.Castle.dll
File Files\NHibernate.dll
File Files\nhibernate-configuration.xsd
File Files\nhibernate-mapping.xsd
File Files\Ninject.dll
File Files\nunit.core.dll
File Files\nunit.framework.dll
File Files\Print.dll
File Files\ProgramAdjustments.xml
File Files\remote.hibernate.cfg.xml
File Files\Repositories.dll
File Files\Repositories.Impl.dll
File Files\Screen.Presenters.dll
File Files\Screen.Presenters.Impl.dll
File Files\Screen.Views.dll
File Files\Screen.Views.Impl.dll
File Files\Services.dll
File Files\sqlceca35.dll
File Files\sqlcecompact35.dll
File Files\sqlceer35EN.dll
File Files\sqlceer35RU.dll
File Files\sqlceme35.dll
File Files\sqlceoledb35.dll
File Files\sqlceqp35.dll
File Files\sqlcese35.dll
File Files\System.Data.SqlServerCe.dll
File Files\System.Data.SqlServerCe.Entity.dll
File Files\DeclarantTS.exe

CreateShortCut "C:\Documents and Settings\All Users\Рабочий стол\DeclarantTS.lnk" "$ProgramFolderPath\DeclarantTS.exe"
SectionEnd

Function EnterWelcomePage
!insertmacro MUI_HEADER_TEXT "Приветствие" "Вас приветствует мастер установки Declarant TS"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "Welcome.ini"
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd

Function LeaveWelcomePage
!insertmacro MUI_INSTALLOPTIONS_READ $IsInstallDB "Welcome.ini" "Field 1" "State"
FunctionEnd

Function EnterPathPage
!insertmacro MUI_HEADER_TEXT "Выбор путей" "Выберите папки,куда требуется установить программу"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ProgramPath.ini"
!insertmacro MUI_INSTALLOPTIONS_SHOW
!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 1" "State" "C:\ProgramFolder"

${if} $IsInstallDB == 0
;!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 2" "Flag" "DISABLED"
${endif}
FunctionEnd

Function LeavePathPage
!insertmacro MUI_INSTALLOPTIONS_READ $ProgramFolderPath "ProgramPath.ini" "Field 1" "State"
!insertmacro MUI_INSTALLOPTIONS_READ $DBFileFolderPath "ProgramPath.ini" "Field 2" "State"
FunctionEnd

Function EnterServerAdjustmentsPage
${if} $IsInstallDB == 0
Abort
${endif}
!insertmacro MUI_HEADER_TEXT "Доступ к серверу" "Укажите настройки доступа к серверу MS SQL, к которой будет подсоединена база данных"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ServerAdjustments.ini"
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd

Function LeaveServerAdjustmentsPage
Call SaveServerAdjustments
FunctionEnd

Function SaveServerAdjustments
!insertmacro MUI_INSTALLOPTIONS_READ $ServerName "ServerAdjustments.ini" "Field 1" "Text"
!insertmacro MUI_INSTALLOPTIONS_READ $UserName "ServerAdjustments.ini" "Field 2" "Text"
!insertmacro MUI_INSTALLOPTIONS_READ $UserPathword "ServerAdjustments.ini" "Field 3" "Text"
!insertmacro MUI_INSTALLOPTIONS_READ $0 "ServerAdjustments.ini" "Field 4" "Text"
${if} $0 <> ""
StrCpy $ServerName "$ServerName\$0"
${endif}
FunctionEnd

Отправлено: 15:56, 02-06-2011 | #1236


Аватара для kotkovets

Ветеран


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

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


Цитата TTTLordLeo:
Я нашел решение типа, где поля создаются напрямую в функции:
${NSD_CreateText} 0 20u 100% 15u "Здесь можно печатать..."
Pop $Text
${NSD_OnChange} $Text fnTextChange »
Этот код для nsDialogs -> MUI2.nsh
Цитата TTTLordLeo:
Для страниц инсталлятора я использую .ini файл с настройками элементов на странице. »
Этот код для InstallOptions.dll -> MUI.nsh - почти не использую, так что пишите на MUI2, тогда подскажу...

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


Отправлено: 16:20, 02-06-2011 | #1237


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


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

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


в MUI2 определение элементов и их положение возможно только способом указания кода их создания в функция скрипта?
Или есть способ накидать элементы в визуальном дизайнере? Для MUI я использовал nisedit

Отправлено: 19:50, 02-06-2011 | #1238


Аватара для kotkovets

Ветеран


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

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


Цитата TTTLordLeo:
в MUI2 определение элементов и их положение возможно только способом указания кода их создания в функция скрипта? »
конечно! никаких ini - чистый апи, работает все прекрасно - дело в тренировке и изучением толмутов.
Тем более посмотрите предыдущие странички темы этак 20 - 30 страниц - я много приводил примеров создания страничек на MUI2
Цитата TTTLordLeo:
есть способ накидать элементы в визуальном дизайнере? »
есть, но для юникодной версии NSIS (ссылка в шапке), но правда далеко от идеала. После 5 минут общения с дизайнером пропала охота пользоваться... http://coolsoft.altervista.org/en/nsisdialogdesigner

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


Отправлено: 21:42, 02-06-2011 | #1239


Аватара для Flix

Пользователь


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

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


Парень из Словакии (под ником Slappy) создал плагин для "HM NIS Edit", позволяющий создавать дизайн окон инсталлятора NSIS как в InnoSetup. Назвал он свое творение "Graphical Installer " и распространяет за деньги. Ориентирование плагина - создание красочных инсталляторов для игрушек. Кто-нибудь уже испытывал это чудо?
Он пишет, что этого результата можно добиться и без его дополнения. Я хотел спросить здесь у опытных NSIS-ишников (я только начал знакомиться с этим установщиком) - это действительно возможно? Просто дайте мне направление, на что обратить внимание (какие плагины или модули использовать), а я уже буду дальше сам разбираться. Как говорится, зачем платить.

Может у кого здесь уже есть наработки в этом направлении, будет приятно с ними познакомиться и разобрать ко косточкам.

Отправлено: 21:32, 06-06-2011 | #1240



Компьютерный форум 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




 
Переход