Приветствую землян,
Вот мой вопрос:
Как я могу создать программу, которая устанавливает переменную для текущего сеанса cmd.exe, например.
c:\> set myvar
Environment variable myvar not defined
c:\>myexe.exe
c:>set myvar
myvar=myvalue
Единственная похожая тема, которую я нашел, это -
Как изменить оболочку Windows (cmd.exe) переменные окружения из C++?
Но я не понял ни слова из этого:
Есть способ... Просто введите свой код в родительский процесс и вызовите SetEnvironmentVariableA внутри памяти процесса cmd. После инъекции просто освободите выделенную память.
Хотя C/C++ не является моим «родным» языком, я чувствовал себя совершенно потерянным, когда искал в Google «код для ввода C++» и т. д. Есть ли статья, где я могу получить больше информации об этом.
Кстати, теперь я использую один немного глупый обходной путь. Как установить переменную в
HKEY_CURRENT_USER\Окружающая среда
и
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
сравнительно легко, я просто записываю аналогичную переменную в реестр:
load.temp.vars=set myvar1=myval1&set myvar2=myval2& ....
а затем просто вызовите %load.temp.vars% и он будет выполнен как команда:
c:/>%load.temp.vars%
c:/>set myvar1
myvar1=myval1
Работает нормально, но мне этого мало :)
Живи долго и процветай, \\//_