|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
|
.: NSIS - все вопросы :. часть 2.
|
|
Ветеран Сообщения: 1216 |
![]() Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
|
------- Отправлено: 12:02, 09-12-2012 |
|
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать Вот спасибо. Пол дня пытался понять, что не так. Я и подозревал, что что то считывается невидимое, потому что, если напрямую присваивал любые одинаковые значения, то было всё правильно.
Начну знакомство с очисткой. P.S. Я так понял, что нельзя в моём конкретном примере обойтись как нибудь без $\n и неизвестной для меня очистки? Ведь будет только одна строка. |
|
Отправлено: 23:28, 07-04-2023 | #2711 |
|
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Самый простой способ хранения значений в файле - использовать ini-файл (ReadINIStr/WriteINIStr)
|
|
Отправлено: 23:35, 07-04-2023 | #2712 |
|
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать Попробую.
Добавлено: Всё получилось и работает как надо. Это я так хочу использовать "уникальную метку" системы. Но не уверен, что данные, те что я использую будут уникальными для всех систем: В связи с этим еще один вопрос, откуда в системе виндовс можно взять "метку", чтобы на 100 процентов или почти на 100 процентов эти данные были "уникальными" для каждой системы? |
|
Последний раз редактировалось inco1, 08-04-2023 в 07:03. Отправлено: 23:39, 07-04-2023 | #2713 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать Цитата inco1:
|
|
|
Отправлено: 09:24, 08-04-2023 | #2714 |
|
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать MKN, приветствую.
Как записать ID винта? Или ID винта это его серийный номер? |
|
Отправлено: 09:37, 08-04-2023 | #2715 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать inco1,
есть миниатюрный плагин для определения инфы о HDD (см. прикреплённый файл) или Цитата:
|
|
|
Последний раз редактировалось MKN, 08-04-2023 в 12:47. Причина: й файл) Отправлено: 12:04, 08-04-2023 | #2716 |
|
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать iglezz, Доброго вам дня и здоровья.
Походу в вашем коде поиска строки баг. Вчера целый день потратил, чтобы найти проблему. Я то ведь сразу вставлял ваш код в мой огромный код и строку не искало. А экзешник с одного вашего кода четко и быстро находит. Я потом давай убирать с моего кода по строкам всё, пока не нашел причину. Вот экзешник с вашим кодом, который прекрасно находит слово "Word.com" в файле hosts: RequestExecutionLevel user
SilentInstall silent
!include Util.nsh
!include LogicLib.nsh
!include StrFunc.nsh
${Using:StrFunc} StrLoc
!define FileReadAuto `!insertmacro FileReadAuto`
!macro FileReadAuto ISUTF16LE HANDLE READLINE
StrCmp ${ISUTF16LE} 0 0 +3
FileRead ${HANDLE} ${READLINE}
Goto +2
FileReadUTF16LE ${HANDLE} ${READLINE}
!macroend
!define FileFindStrStruct `(i, i, &t${NSIS_MAX_STRLEN}) p`
!define FileFindStr `!insertmacro FileFindStr`
!macro FileFindStr OUTPUT FILENAME STRTOFIND
Push '${STRTOFIND}'
Push '${FILENAME}'
${CallArtificialFunction} FileFindStr_macro
Pop ${OUTPUT}
!macroend
!macro FileFindStr_macro
Exch $0
Exch
Exch $1
Push $2
Push $3
Push $4
Push $5
Push $6
Push $7
StrCpy $5 0
StrCpy $7 0
FileOpen $2 $0 R
IfErrors FileFindStr_macro_end
FileReadWord $2 $4
${If} $4 = 0xFEFF
StrCpy $3 1
${Else}
StrCpy $3 0
${EndIf}
FileSeek $2 0 SET
${Do}
${FileReadAuto} $3 $2 $4
${IfThen} ${Errors} ${|} ${ExitDo} ${|}
IntOp $5 $5 + 1
${StrLoc} $6 $4 $1 >
${If} $6 != ''
System::Call '*${FileFindStrStruct} (r5, r6, r4) .r7'
${ExitDo}
${EndIf}
${Loop}
FileClose $2
FileFindStr_macro_end:
StrCpy $0 $7
Pop $7
Pop $6
Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Exch $0
!macroend
Section
${FileFindStr} $0 '$SYSDIR\drivers\etc\hosts' 'Word.com'
${If} $0 <> 0
MessageBox MB_OK " Нужное слово найдено "
${Else}
MessageBox MB_OK " Нужное слово НЕ найдено "
${EndIf}
SectionEnd
RequestExecutionLevel user
SilentInstall silent
!include Util.nsh
!include LogicLib.nsh
!include StrFunc.nsh
${Using:StrFunc} StrLoc
!define FileReadAuto `!insertmacro FileReadAuto`
!macro FileReadAuto ISUTF16LE HANDLE READLINE
StrCmp ${ISUTF16LE} 0 0 +3
FileRead ${HANDLE} ${READLINE}
Goto +2
FileReadUTF16LE ${HANDLE} ${READLINE}
!macroend
!define FileFindStrStruct `(i, i, &t${NSIS_MAX_STRLEN}) p`
!define FileFindStr `!insertmacro FileFindStr`
!macro FileFindStr OUTPUT FILENAME STRTOFIND
Push '${STRTOFIND}'
Push '${FILENAME}'
${CallArtificialFunction} FileFindStr_macro
Pop ${OUTPUT}
!macroend
!macro FileFindStr_macro
Exch $0
Exch
Exch $1
Push $2
Push $3
Push $4
Push $5
Push $6
Push $7
StrCpy $5 0
StrCpy $7 0
FileOpen $2 $0 R
IfErrors FileFindStr_macro_end
FileReadWord $2 $4
${If} $4 = 0xFEFF
StrCpy $3 1
${Else}
StrCpy $3 0
${EndIf}
FileSeek $2 0 SET
${Do}
${FileReadAuto} $3 $2 $4
${IfThen} ${Errors} ${|} ${ExitDo} ${|}
IntOp $5 $5 + 1
${StrLoc} $6 $4 $1 >
${If} $6 != ''
System::Call '*${FileFindStrStruct} (r5, r6, r4) .r7'
${ExitDo}
${EndIf}
${Loop}
FileClose $2
FileFindStr_macro_end:
StrCpy $0 $7
Pop $7
Pop $6
Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Exch $0
!macroend
Section
${FileFindStr} $0 '$SYSDIR\drivers\etc\hosts' 'Word.com'
${If} $0 <> 0
MessageBox MB_OK " Нужное слово найдено "
${Else}
MessageBox MB_OK " Нужное слово НЕ найдено "
${EndIf}
SectionEnd
Function .onInit
Var /GLOBAL Proga
ReadRegStr $Proga HKLM "SOFTWARE\Test" "Test"
FunctionEnd
|
|
Отправлено: 14:46, 09-04-2023 | #2717 |
|
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 15:22, 09-04-2023 | #2718 |
|
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать iglezz,
Теперь заработало, как надо. Спасибо за оперативный отклик. P.S. Сравнивал скорость поиска по ${LineRead} и вашим кодом. Брал 400 строк и нужная вконце, одна строка - одно слово. Ваш код находит мгновенно, а через ${LineRead} около 8-10 секунд. |
|
Отправлено: 15:44, 09-04-2023 | #2719 |
|
Пользователь Сообщения: 93
|
Профиль | Отправить PM | Цитировать Всем доброго дня.
Помогите, пожалуйста с такой проблемой. В одной из папок имеются одна папка с известным названием и несколько неизвестных папок ("Test kkkkkk", "Test ххх", "Test yyyyyyyy", "Test zzzz", ....). Во всех папок первое слово одинаковое. Нужно удалить неизвестные папки, у которых значения k, x, Y, z, ... непостоянные (неизвестные). Как вариант подойдет что нибудь типа "удалить все папки, кроме одной с известным названием". |
|
Отправлено: 19:30, 25-04-2023 | #2720 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 267 | 14-02-2020 08:25 | |
| [архив].: NSIS - все вопросы :. | kotkovets | Автоматическая установка приложений | 3387 | 09-12-2012 11:56 | |
| Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 | jameszero | Наборы обновлений для Windows XP/2003/Windows 7 | 1491 | 22-07-2011 22:42 | |
| Выбор|модернизация процессора .:[все вопросы]:. Часть I | Myxa | Выбор отдельных компонентов компьютера и конфигурации в целом | 1845 | 01-01-2011 19:18 | |
| Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 | |
|