【发布时间】:2010-07-10 10:12:16
【问题描述】:
问候地球人,
这是我的问题:
如何创建一个程序,将变量设置为 cmd.exe 的当前会话,例如
c:\> set myvar
Environment variable myvar not defined
c:\>myexe.exe
c:>set myvar
myvar=myvalue
我发现的唯一类似的主题是这个 -
How can I change Windows shell (cmd.exe) environment variables from C++?
但我没有得到一个字:
有一种方法...只需注入您的 代码进入父进程并调用 cmd里面的SetEnvironmentVariableA 过程记忆。只注射后 释放分配的内存。
虽然 C/C++ 不是我的“本机”语言,但当我用“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
效果很好,但对我来说还不够好:)
长寿富贵, \\//_
【问题讨论】:
标签: c++ windows shell variables cmd