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

Показать сообщение отдельно

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


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

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


Всем доброго времени суток.
Столкнулся с двумя проблемами.
В папке $WINDIR\System32\drivers\ хочу удалить файл .sys. В семерке этот файл спокойно удаляется с помощью макроса и команды:
Скрытый текст
Код: Выделить весь код
!insertmacro DisableX64FSRedirection
Delete "$WINDIR\System32\drivers\test.sys"
!insertmacro EnableX64FSRedirection

В десятке почему то не удаляется. Когда начал пробовать в десятке удалить его вручную, то он пишет, что занят процессом. Но IObit Unlocker показывает, что никаким процессом он не занят и командой "разблокировать и удалить" спокойно его удаляет.
Вот такой вопрос, имеется ли в nsis команда типа "снять все атрибуты, разблокировать и удалить", чтобы удалялся в десятке файл, как это делает IObit Unlocker?
И вторая проблема.
Имеется батник - это вполне рабочий генератор случайного 32 значного кода с записью в нужную область реестра:
Скрытый текст
Код: Выделить весь код
@echo off
cls
 
@echo.
@echo.
 
call :randomizeSequence 32 sequence
@echo sequence = '%sequence%'
 
REG ADD HKLM\Software\Test/v TestId /t REG_SZ /d %sequence% /f
 exit /b
 
:randomize
    set MIN=%1
    set MAX=%2
    set /A %3=%MIN% + (%MAX% - %MIN% + 1) * %random% / 32768
exit /b
 
:fillArray
    set "array[%cnt%]=%1"
    set /a cnt +=1
exit /b
 
:initialRandomize
    if defined ALREADYINIT (exit /b)
    set ALREADYINIT=true

    for %%a in ( 1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  g) do (
        call :fillArray %%a  
    )
exit /b
 
:accumulate
    call :randomize 1 15 index
    call set "char=%%array[%index%]%%"
    call set "%dst%=%%%dst%%%%char%"
exit /b
 
:randomizeSequence
    set len=%1
    set dst=%2
    call :initialRandomize
    for /L %%a in (1 1 %len%) do (
        call :accumulate %%a
    )
exit /b

Помогите, пожалуйста сделать то же самое, что в батнике только кодом.

Отправлено: 06:15, 12-06-2020 | #2441