Написать скрипт на NSIS
Необходимо написать скрипт на юникодовом NSIS.
Исходные данные:
1. Нужно положить файл sample.dll в папку, которую указал пользователь (по умолчанию - {$PROGRAM_FILES}\SAMPLE)
2. Прописать в конфигурации системы все пути на установленную sample.dll (правила смотри ниже)
3. В деинсталятор внедрить возможность удаления sample.dll и папки ее содержащей, если она больше ничего не содержит, а также выписать ее из системы
Желательно использовать распостраненный XML плагин для NSIS.
Правила прописывания sample.dll в систему
1. В реестре по пути "HKLM\Software\D-PDU API" в ключе "Root File" хранится путь на XML файл, в котором нужно прописать sample.dll
Если такого пути/ключа нет, инсталятор должен его создать. Значение при этом должно быть "C:\Program Files (x86)\D-PDU API\pdu_api_root.xml", или без x86, если система 32-разрядная
2. Вот пример XML файла, с единственной прописанной sample.dll:
<?xml version="1.0" encoding="utf-8"?>
<MVCI_PDU_API_ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" MVCI_PART2_STANDARD_VERSION="2.2.0">
<MVCI_PDU_API>
<SHORT_NAME>SAMPLETECH2WIN</SHORT_NAME>
<DESCRIPTION>Sample Tech2Win Driver</DESCRIPTION>
<SUPPLIER_NAME>Sample LTD</SUPPLIER_NAME>
<LIBRARY_FILE URI="file:///C:/Program Files (x86)/SAMPLE/sample.dll"/>
</MVCI_PDU_API>
</MVCI_PDU_API_ROOT>
Однако, pdu_api_root.xml может содержать уже прописанные имена сторонних DLL в системе (их количество ничем не ограничего), и информацию о нашем sample.dll нужно корректно вставить в этот файл. Вот пример:
<?xml version="1.0" encoding="utf-8"?>
<MVCI_PDU_API_ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" MVCI_PART2_STANDARD_VERSION="2.2.0">
<MVCI_PDU_API>
<SHORT_NAME>SAMPLETECH2WIN_1</SHORT_NAME>
<DESCRIPTION>Sample Tech2Win Driver_1</DESCRIPTION>
<SUPPLIER_NAME>Sample LTD_1</SUPPLIER_NAME>
<LIBRARY_FILE URI="file:///C:/Program Files (x86)/SAMPLE_1/sample_1.dll"/>
</MVCI_PDU_API>
<MVCI_PDU_API>
<SHORT_NAME>SAMPLETECH2WIN_2</SHORT_NAME>
<DESCRIPTION>Sample Tech2Win Driver_2</DESCRIPTION>
<SUPPLIER_NAME>Sample LTD_2</SUPPLIER_NAME>
<LIBRARY_FILE URI="file:///C:/Program Files (x86)/SAMPLE_2/sample_2.dll"/>
</MVCI_PDU_API>
<MVCI_PDU_API>
<SHORT_NAME>SAMPLETECH2WIN</SHORT_NAME>
<DESCRIPTION>Sample Tech2Win Driver</DESCRIPTION>
<SUPPLIER_NAME>Sample LTD</SUPPLIER_NAME>
<LIBRARY_FILE URI="file:///C:/Program Files (x86)/SAMPLE/sample.dll"/>
</MVCI_PDU_API>
</MVCI_PDU_API_ROOT>
Также возможен вариант, когда в системе уже прописан sample.dll, и требуется обновить pdu_api_root.xml.
Например, нужно заменить путь "file:///C:/Program Files (x86)/SAMPLE/sample.dll" на другой. При этом инсталятор должен найти запись о нашей DLL по вот этому ключу: <SHORT_NAME>SAMPLETECH2WIN</SHORT_NAME> и обновить поле LIBRARY_FILE URI
Правила деинсталятора
1. Найти нашу запись по <SHORT_NAME>SAMPLETECH2WIN</SHORT_NAME> и удалить всю информацию, обновив таким образом XML файл
2. Удалить sample.dll, если папка после удаления пустая, то удалить и папку
Оплата Webmoney или по договоренности
-
5 дней1200 UAH
967 57 0 5 дней1200 UAHЗдравствуйте, буду рад вам помочь с исполнением Вашего задания.
Могу вас заверить что работа будет сделана быстро и качественно,
что доказано хорошим рейтингом сдесь на бирже.
Отпишите, готов сотрудничать.
-
3 дня1000 UAH
2662 53 0 1 3 дня1000 UAHготов реализовать
-
Все проекты на NSIS сделаны, не хочется зоопарк решений делать.
-
Актуальные фриланс-проекты в категории Десктопные приложения
Модификация в работе эмулятора
2000 UAH
Здравствуйте. Я скачал с Интернета эмулятор игрового автомата gaminator cf final. Он мне очень понравился, но там есть недочёты. Есть админ панель, но она открывается свободно, но не закрывается вообще. Закрывается только вместе с приложением. А данные, после изменения в админ… Десктопные приложения ∙ 4 дня 13 часов назад ∙ 10 ставок |
Разработка кастомного ПО (Android-приложения + CMS) для киосков самообслуживания SUNMI K2 (Фастфуд)
1000 UAH
Ищем опытную команду или Middle/Senior Android-разработчика (возможно, с Full-stack навыками) для создания собственного программного обеспечения для киосков самообслуживания сети заведений быстрого питания. Сейчас наши терминалы работают на базе готового облачного интегратора,… CMS, Десктопные приложения ∙ 9 дней 9 часов назад ∙ 23 ставки |