我想创建自己的Windows系统环境变量,但我无法让我的应用程序执行此操作。 我尝试了不同的解决方案,但没有一个有效。或者只在我的应用运行时的那几秒钟工作。 这应该工作:
QProcessEnvironment qpeInfo = QProcessEnvironment::systemEnvironment();
qpeInfo.insert( "MyEnvName", "TestValue" );
或者这个:
system( QString( "set MyEnvName=Testvalue" ).toStdString().c_str() );
有什么想法吗?
答案 0 :(得分:3)
documentation for environment variables告诉您如何执行此操作:
调用
SetEnvironmentVariable
对系统环境变量没有影响。要以编程方式添加或修改系统环境变量,请将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
注册表项,然后广播WM_SETTINGCHANGE
消息,并将lParam
设置为字符串"Environment"
。这允许应用程序(如shell)获取更新。