本质上,我想创建一个新的进程并从父进程为它定义环境。我想使用CreateProcessW
并将(修改的)UNICODE环境传递到lpEnvironment
,但我不确定与ANSII环境块相比,内容应该是什么样子。UNICODE环境块如何在Windows上通过CreateProcessW()启动新进程?
唯一的文档我才真正发现是MSDN:
注意一个ANSI环境块是 由两个零字节终止:一个用于 最后一个字符串,多了一个终止 块。 Unicode环境块 由四个零字节终止:两个 为最后一个字符串,另外两个以 终止该块。
现在我试图
- 呼叫
GetEnvironmentStrings
并把它传递给子进程 - 呼叫
GetEnvironmentStringsW
并把它传递给子进程 - 修改这些块与我的其他环境字符串和通过它
非他们工作
我真的只能将lpEnvironment
设置为NULL
才能使用它,但现在我必须更改&还原我父母的处理环境 - 是这样的吗?
(我也没有设置CREATE_UNICODE_ENVIRONMENT
)
谁能告诉我什么特别之处UNICODE
环境块 - 它的工作,我只是用ASCII
的东西,并呼吁CreateProcessA()
...
发布您的代码。 – Stu 2010-11-12 19:41:32
您使用“UNICODE”,但它应该“Unicode”。你使用“ANSII”,但这个词是“ANSI” - 也没有任何意义! – tchrist 2010-11-13 14:01:51