通过 windows 任务栏图标启动的程序,如何设定该程序运行时的环境变量

2021-11-08 17:01:12 +08:00
 einsdisp

1 、不能修改系统的环境变量设置

2 、不能使用 cmd 命令、脚本、或在包装一个 launcher.exe 程序等,因为这样的话,使用原程序的任务栏图标启动后,是没有这个环境变量的

3 、方法要尽可能通用

1119 次点击
所在节点    程序员
8 条回复
ch2
2021-11-08 17:08:44 +08:00
在 appdata 目录维护一个配置文件,每次去读写配置文件
AoEiuV020
2021-11-08 17:11:55 +08:00
| 不能修改系统的环境变量设置

那就修改用户的环境变量,
einsdisp
2021-11-08 17:41:30 +08:00
@AoEiuV020 也不能修改用户的环境变量
einsdisp
2021-11-08 17:45:03 +08:00
@ch2 是第三方的 EXE 程序,而且方法要通用,所以不可能要求 EXE 去读取什么配置文件的
kkocdko
2021-11-08 18:37:59 +08:00
在程序目录下放一个 dll 进行劫持,hook 掉入口点
kkocdko
2021-11-08 18:41:59 +08:00
https://github.com/kkocdko/crknob/blob/master/src/main.cc
类似这样。坏处是:报毒,启动时间增加几十毫秒,某些程序可能出错
AoEiuV020
2021-11-08 18:51:13 +08:00
@einsdisp 跑个脚本改用户环境变量也不可以么?

考虑 xy 问题,无法想象什么场景是既不能改用户环境又不能改程序逻辑的,
codehz
2021-11-08 19:10:36 +08:00
(用镜像劫持)(划掉)
标准方法是使用兼容性管理工具,可以安排环境变量设置,甚至替代 dll (但是较为复杂)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/813928

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX