当前位置: 首页 > news >正文

中国建设厅官方网站/国内新闻今日头条

中国建设厅官方网站,国内新闻今日头条,设计高端网站哪家好,如何让网站快速收录文章目录导读开发环境实现通过procexp打开1836进程的环境变量列表修改注册表(手动/编码实现)广播WM_SETTINGCHANGE消息再次通过procexp打开1836进程的环境变量列表也可以通过《系统属性 > 环境变量》来查看是否生效文章小结参考资料导读 一直都很好奇…

文章目录

    • 导读
      • 开发环境
    • 实现
      • 通过procexp打开1836进程的环境变量列表
      • 修改注册表(手动/编码实现)
      • 广播WM_SETTINGCHANGE消息
      • 再次通过procexp打开1836进程的环境变量列表
      • 也可以通过《系统属性 > 环境变量》来查看是否生效
    • 文章小结
    • 参考资料

导读

一直都很好奇一些安装软件,如何将自己安装的路径,添加到环境变量PATH中的(之前尝试用API SetEnvironmentVariable只在当前进程有效)。今天终于查了查资料实现了该需求,并通过工具验证了该实现。
在这里插入图片描述

开发环境

版本号描述
文章日期2022-11-19
操作系统Win11-22H2内部版本号22621.674
Visual Studio 201916.11.12
Windows SDK10.0.17763.0

实现

通过procexp打开1836进程的环境变量列表

参考下面的比较图片

修改注册表(手动/编码实现)

在这里插入图片描述

广播WM_SETTINGCHANGE消息

编写如下代码并执行:

	// 阻塞UINT fuFlags = SMTO_BLOCK;// The duration of the time-out period, in milliseconds. If the message is a broadcast message, each window can use the full time-out period. For example, if you specify a five second time-out period and there are three top-level windows that fail to process the message, you could have up to a 15 second delay.// 消息超时时间,每个顶层窗口都会等待uTimeout毫秒。UINT uTimeout = 100;DWORD dwResult = 0;LRESULT ret = ::SendMessageTimeoutA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)_T("Environment"), fuFlags, uTimeout, &dwResult);printf("ret, dwResult, GetLastError() = %d %d %d \n", ret, dwResult, GetLastError());

再次通过procexp打开1836进程的环境变量列表

比较执行广播消息前后的列表,发现已经新增了环境变量FLAG_MY_PIPE_NAME
在这里插入图片描述

也可以通过《系统属性 > 环境变量》来查看是否生效

在这里插入图片描述
在这里插入图片描述

文章小结

下面两组函数只能修改当前进程的环境变量(子进程默认继承修改后的环境变量)。

  • getenv & setenv
  • GetEnvironmentStrings & SetEnvironmentVariable

环境变量存储在注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment中,系统启动后,将所有环境变量加载到explorer等进程中(保存到PBE中),explorer之后的进程会继承该环境变量。

如果直接修改注册表项,并不能修改已经启动进程的环境变量,需要通过广播消息WM_SETTINGCHANGE通知给所有已经启动的带窗口处理函数的进程(cmd命令的进程不处理窗口消息,不能更新环境变量)。

ps: 通过三方工具修改环境变量,《Windows修改环境变量的工具—Rapid Environment Editor》https://blog.csdn.net/COCO56/article/details/102425383

参考资料

  • https://learn.microsoft.com/zh-cn/windows/win32/procthread/environment-variables
  • https://learn.microsoft.com/zh-cn/windows/win32/winmsg/wm-settingchange
  • qq群:夜猫逐梦技术交流裙/953949723
    逐梦中原技术交流QQ群

**ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。

http://www.jmfq.cn/news/5117257.html

相关文章:

  • 那个网站做毕业设计/全网营销平台
  • 网站迁移 域名设置/全国十大婚恋网站排名
  • 上海模板建站平台/宁国网络推广
  • 网站建设公司怎么找客户/生意参谋指数在线转换
  • 做网站定金是多少/搜索引擎营销的6种方式
  • 淘宝优惠券网站用什么软件做/2345网址中国最好
  • 自己做网站网页文件在哪里/培训推广 seo
  • 怎么做原创电影视频网站/广州百度关键词排名
  • 网站备案能快速备案嘛/网站备案查询官网
  • 装修网站开发/百度推广人联系方式
  • 云南网站开发哪家靠谱/营销推广技巧
  • 济南网站的建设/培训心得体会范文大全1000字
  • 求推荐专门做借条的网站/seo网络推广培训
  • 广西网站推广/手机百度网页版 入口
  • 营销型网站特征/甘肃seo网站
  • 大连模板网站制作服务/网站seo源码
  • 有哪些网站可以做java题目/百度seo营销公司
  • 车陂手机网站建设电话/怎么在百度发布自己的文章
  • 企业网站的常见服务/附近成人电脑培训班
  • 营销型网站建设排名/广州seo网站推广平台
  • 预定型网站有哪些/济南疫情最新情况
  • 广东省城乡与住房建设厅网站/推广网站的方法
  • 海南手机网站建设公司哪家好/站内免费推广有哪些
  • 自己做的网站怎么上传到网络/谷歌官网入口
  • 网站后台编辑器内容不显示/外贸seo优化
  • 简洁的网站设计/购买模板建站
  • iis网站属性怎么打开/合肥关键词排名推广
  • web版wordpress/seo搜索引擎优化排名
  • 设计网站建站/关键词挖掘站网
  • 没网站可以做seo吗/网站推广投放