По сути, я хотел бы создать новый процесс и определить среду для него из родительского процесса.Я хотел бы использовать CreateProcessW
и передать (измененную) среду UNICODE в lpEnvironment
, но я не уверен, как должен выглядеть контент по сравнению с блоком среды ANSII.
Единственная документация, которую я действительно нашел, находится на MSDN:
Обратите внимание, что блок среды ANSI завершается двумя нулевыми байтами: один для последней строки, еще один для завершения блока.Блок среды Unicode завершается четырьмя нулевыми байтами: два для последней строки, еще два для завершения блока.
Теперь я попытался
- вызвать
GetEnvironmentStrings
и передать его дочернему процессу - call
GetEnvironmentStringsW
и передать его дочернему процессу - , изменить эти блоки с моими дополнительными строками среды и передать его на
ни один из них не работает
Я действительно мог бы установить lpEnvironment
на NULL
, чтобы заставить его работать, но теперь мне пришлось бы изменить и вернуть среду обработки моих родителей - это путьздесь?
(я также установил CREATE_UNICODE_ENVIRONMENT
)
Может кто-нибудь сказать, что такого особенного в UNICODE
блоках среды - это работало, когда я просто использовал ASCII
вещи и звоните CreateProcessA()
...