• 请不要在回答技术问题时复制粘贴 AI 生成的内容
einsdisp
V2EX  ›  程序员

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

  •  
  •   einsdisp · Nov 8, 2021 · 1505 views
    This topic created in 1671 days ago, the information mentioned may be changed or developed.

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

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

    3 、方法要尽可能通用

    8 replies    2021-11-08 19:10:36 +08:00
    ch2
        1
    ch2  
       Nov 8, 2021
    在 appdata 目录维护一个配置文件,每次去读写配置文件
    AoEiuV020
        2
    AoEiuV020  
       Nov 8, 2021
    | 不能修改系统的环境变量设置

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

    考虑 xy 问题,无法想象什么场景是既不能改用户环境又不能改程序逻辑的,
    codehz
        8
    codehz  
       Nov 8, 2021 via Android
    (用镜像劫持)(划掉)
    标准方法是使用兼容性管理工具,可以安排环境变量设置,甚至替代 dll (但是较为复杂)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 14:11 · PVG 22:11 · LAX 07:11 · JFK 10:11
    ♥ Do have faith in what you're doing.