Windows环境变量-麻烦在程序中访问更新的环境变量

问题描述 投票:0回答:1

我编写了一个初始化脚本,该脚本设置了用户环境变量,这些用户变量是已被散列和加密的密钥...一旦创建了密钥,就不再需要密钥加密exe。我要启动主应用程序并删除包含哈希和密钥加密功能的初始化文件。

我在上述任何方面都没有遇到麻烦...彼此独立时,一切工作都应正常进行。问题是,为了使主应用程序能够访问新创建的环境变量,我需要使用初始化脚本来完全退出...

我尝试过的一切,带有标志的Popen,os.system()以及其他都在父进程结束且主应用程序启动的情况下离开了我,但是环境变量尚未更新...我关闭并重新启动main.py和... boom,程序将看到更新的变量,一切都很好。

我只想运行init脚本,生成一个根本不与init.py链接的新进程,然后退出以将其删除。我以为这很简单,但是经过数小时的头部抓挠和尝试许多尝试之后,我仍然离这还很近。

如果需要,我将其捆绑为两个单独的.exe文件,但我希望它成为一键安装类型的东西。

我正在运行Windows 10,这可能是特定于平台的。

查看链接:

How to stop/terminate a python script from running?

Using a Python subprocess call to invoke a Python script

Starting a separate process

https://docs.python.org/2/library/subprocess.html

Python: Howto launch a full process not a child process and retrieve the PID

还有更多...

当前最接近的结果

p = Popen(["python","UserInterface.py"], stdin=PIPE, stdout=PIPE, stderr=PIPE,
      creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
python-3.x winapi environment-variables
1个回答
1
投票
创建环境块,使用SetEnvironmentVariable设置环境变量,然后使用SetEnvironmentVariable为创建的进程指定此环境块。
© www.soinside.com 2019 - 2024. All rights reserved.