УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS

       

Системные переменные


  • В принципе, макросы дублируют большинство системных переменных, но не все. Добраться напрямую к их значениям можно с пом. ф-ции EnvGet, например:

    EnvGet("SYSTEMDRIVE")

  • Дописывание пути в переменную Path:

    ;например, допишем путь к 7-Zip в Path $addtopath='%ProgramFiles%\7-Zip' $smcur='HKEY_LOCAL_MACHINE\SYSTEM\ControlSet' & StringFormat("%03s",RegRead("HKEY_LOCAL_MACHINE\SYSTEM\Select","Current")) & '\Control\Session Manager\Environment' $syscurpath=RegRead($smcur,"Path") ;если путь уже был внесен в Path (например, при установке поверх более старой версии), то ничего не делаем If Not StringInStr ($syscurpath,@ProgramFilesDir&'\7-Zip') and Not StringInStr ($syscurpath,$addtopath) Then RegWrite($smcur,"Path","REG_EXPAND_SZ",RegRead($smcur,"Path") & ";" & $addtopath) EndIf Если верить руководству AutoIt, то применение ф-ции EnvUpdate() после внесения изменений в переменную

    Path должно сделать доступным новые пути, но, на практике этого не происходит - для вступления изменений в силу требуется перезагрузить ОС.

  • Создание новой системной переменной:

    ;имя создаваемой переменной

    $newsysvarname='new'

    ;тип переменной

    $newsysvartype='REG_SZ'

    ;значение переменной

    $newsysvarvalue='value'

    $smcur='HKEY_LOCAL_MACHINE\SYSTEM\ControlSet' & StringFormat("%03s",RegRead("HKEY_LOCAL_MACHINE\SYSTEM\Select","Current")) & '\Control\Session Manager\Environment'

    RegWrite($smcur,$newsysvarname,$newsysvartype,$newsysvarvalue)

    Создать сист. переменную также можно используя ф-цию EnvSet("envvariable"[,"value"]), но она будет существовать только до выхода из текущего скрипта.



    Содержание раздела