如何从 C++ 更改 Windows shell (cmd.exe) 环境变量?

2023-12-09

我想编写一个程序,在调用它的 shell (cmd.exe) 实例中设置环境变量。我的想法是,我可以在这个变量中存储一些状态,然后在后续调用中再次使用它。

我知道有像 SetEnvironmentVariable 这样的命令,但我的理解是这些命令只会更改当前进程的变量,而不会修改调用 shell 的变量。

具体来说,我希望能够做的是创建一个可以在两个目录之间跳转的命令。 Pushd/Popd 可以转到一个目录并返回,但没有办法第二次返回到最初推送的目录。


MSDN 声明如下:

Calling SetEnvironmentVariable没有 对系统环境的影响 变量。以编程方式添加或 修改系统环境变量, 将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment注册表项,然后 广播一个WM_SETTINGCHANGE信息 和lParam设置为字符串 “环境”。这允许 应用程序,例如 shell, 获取您的更新。请注意, 环境变量的值 此键中列出的内容仅限于 1024 个 人物。

考虑到环境有两个级别 - 系统和进程 - 更改 shell 中的环境将构成更改另一个进程的环境。我不相信这是可能的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 C++ 更改 Windows shell (cmd.exe) 环境变量? 的相关文章

  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • select() 可以在 Windows 下使用 Python 中的文件吗?

    我正在尝试在 Windows 下运行以下 python 服务器 An echo server that uses select to handle multiple clients at a time Entering any line o
  • 批处理文件 - 读取特定行,并将该行中的特定字符串保存为变量

    有没有办法让 for f 循环 或其他任何东西 读取特定行 这是我到目前为止的代码 它读取每一行的第一个单词 echo off set file readtest txt for f tokens 1 delims A in file do
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 如何在rest资源spring data Rest中将导出的默认值设置为false

    我想使用 Spring Data Rest 的 RestResource 注解 如您所知 它默认公开所有 CRUD 方法 但我只需要 findAll 方法 一种方法是将所有其他方法的导出值设置为 false 如下所示 RestResourc
  • 如何为 3D 条形图中的条形设置任意颜色?

    假设我有一个矩阵Z有一些值 我想通过绘制中的值来说明它Z按身高 我想到的第一个解决方案是表面 但是使用surf小矩阵的类似函数看起来不太好 所以我考虑使用 3D 条形图之类的东西bar3 但问题是这个函数总是按组而不是按高度设置颜色 我无法
  • Android项目结构不正确;只有一个 build.gradle

    我的项目结构不正确 我需要一个顶级的 build gradle 以及一个包含其自己的同一级别的模块build gradle 请参阅它现在的组织方式的图片 你看到的几乎是两个不同的层次合并成一个 ebuild gradle这是项目中唯一的一个
  • jQuery 原型冲突

    我使用prototype和script aculo us的组合在我的asp net页面中实现灯箱效果 我的页面中还包含jquery 我的页面中有几个DIV标签 但是在将prototype文件包含在我的页面头部 我无法使用 jquery 读取
  • 使用 DocuSign REST API 获取/设置模板字段

    我在 DocuSign 沙箱中创建了一个测试模板 为与另一个系统进行一些自动化做准备 我正在尝试填充这些自定义字段 因为需要包含动态输入的数据 到目前为止 我在身份验证 创建基于模板的 信封 或分配角色方面没有遇到任何问题 我可以毫无问题地
  • 在 Domino Java 代理中使用枚举单例编码模式

    这是我尝试运行的非常简化的 Lotus Domino Java 代理代码 import lotus domino enum SingletonTest INSTANCE public void helloWorld System out p
  • Class#getClassLoader 什么时候返回 null?

    假设我有一些 Java 代码 public class Widget whatever 以及一些类加载的代码Widget ClassLoader widgetLoader Widget class getClassLoader Can wi
  • Angular2 使用对象数组排序管道

    如何使用对象数组在 angular2 中制作排序管道 原始问题 我有一个 TODO 列表 Todo 我想在每次进行一些更改时对其进行排序 我希望已完成的待办事项显示在列表底部 Todo 对象有一个名为 completed 的属性 它存储一个
  • 如何在 vbscript 中解压受密码保护的文件?

    我对 VBScript 还很陌生 我对我想要实现的目标做了一些广泛的研究 甚至找到了该怎么做的例子 但无法让它正常工作 在我的完美世界中 我需要解压缩从第三方供应商发送到文件夹的所有压缩文件 将解压缩的文件导入到不同的文件夹中 然后删除压缩
  • 读取缓冲的二进制文件(带查找)

    假设我需要读取巨大的整数二进制文件 一个方便的方法是 FileInputStream fi new FileInputStream file BufferedInputStream bi new BufferedInputStream fi
  • 查找当前 EntityManagerFactory 的当前持久化单元

    我注意到打电话createEntityManagerFactory null 将使用配置文件中的默认持久性单元 PU 有时 类路径在部署时真的很混乱 我真的很想查看给定 EntityManagerFactory 的当前 PU 的名称 有什么
  • 使用discord.py 让机器人响应图像

    使用discord py 进行机器人编码的新手 正如标题所示 我希望有人能告诉我如何让机器人响应某人发送的图像 无论是从互联网粘贴还是从计算机上传 当然 您可以使用 attachments client event async def on
  • 我需要一个正则表达式将美国电话号码转换为链接

    基本上 输入字段只是一个字符串 人们以各种格式输入电话号码 我需要一个正则表达式来查找这些数字并将其转换为链接 输入示例 201 555 1212 201 555 1212 201 555 1212 555 1212 这就是我想要的 a h
  • socket.error: [Errno 48] 地址已在使用中

    我正在尝试从 mac 终端使用 python 设置服务器 我导航到文件夹位置并使用 python m SimpleHTTPServer 但这给了我错误 socket error Errno 48 Address already in use
  • 使用 Gspread 在文件夹中创建电子表格

    我无法找到有关如何使用 Gspread 在某个 Google Drive 目录中创建 GSheet 的任何文档 我检查了文档并查看了一些后端代码 我目前正在使用下面的代码来创建电子表格 worksheet sh add worksheet
  • 如何将Asterisk服务器与外部关系数据库(例如mysql)集成?

    我的目标 客户端 SIP电话 我使用3CX电话 拨号到asterisk服务器 asterisk然后连接外部关系数据库 与asterisk服务器不在同一位置 如果数据库响应某些内容 asterisk服务器播放语音文件 预定义的 gsm 文件
  • 传递 URL 中包含“%”的参数?

    例如 在传递我的网址时something 8000 something jsp param1 update param2 1000 param3 SearchString param4 3 我收到以下错误 Bad Request Your
  • 将每个组中的行替换为第一行值。熊猫集团

    这是一个数据框 df pd DataFrame A foo foo bar bar bar B 1 2 2 4 1 下面是我想要的样子 这就是我的尝试和失败的方法 groups df groupby A groups apply lambd
  • 使用 jQuery 滚动到某个元素

    我有这个input元素
  • 如何从 C++ 更改 Windows shell (cmd.exe) 环境变量?

    我想编写一个程序 在调用它的 shell cmd exe 实例中设置环境变量 我的想法是 我可以在这个变量中存储一些状态 然后在后续调用中再次使用它 我知道有像 SetEnvironmentVariable 这样的命令 但我的理解是这些命令