首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我希望在不重新引导或重新启动cmd的情况下对path环境系统变量进行修改,这是由于c#引起的

我希望在不重新引导或重新启动cmd的情况下对path环境系统变量进行修改,这是由于c#引起的
EN

Stack Overflow用户
提问于 2013-05-08 21:56:37
回答 2查看 116关注 0票数 0

我正在使用来自Installshield的Oracle动态链接库,将C#的path添加到Path环境变量,以便能够连接到即时客户端的Oracle数据库。

当我第一次运行安装程序时,它没有成功,但对path变量进行了更改。它在第二次尝试时成功,因为路径在第一次运行时已经更改。因此,结论是Oracle数据库提供程序在使用代码修改更改后不会直接查看更改。

我想要一种方法来检测对path变量的更改,而不需要再次尝试安装。

代码语言:javascript
复制
var ancientPath = Environment.GetEnvironmentVariable("path", EnvironmentVariableTarget.Machine); 

Environment.SetEnvironmentVariable("path", ancientPath + ";" + tmp, EnvironmentVariableTarget.Machine);
EN

回答 2

Stack Overflow用户

发布于 2013-05-08 22:40:55

你想做的事情显然是不能做的。一个进程可以修改它自己的环境,它可以产生具有不同环境的进程,但任何进程都不能改变另一个进程的环境。当您在第一次安装后启动新进程时,您应该会看到更新后的路径。

如果希望现有进程使用新的环境变量,则必须重新启动该进程。如果您的安装程序因为缺少路径信息而失败,您将不得不解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2013-05-09 21:53:29

按照following MSDN article中的说明,尝试向所有窗口发送WM_SETTINGCHANGE消息。

SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)“环境”,SMTO_ABORTIFHUNG,5000,&dwReturnValue);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16442616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档