Windows有setx命令
Description:
Creates or modifies environment variables in the user or system
environment.
Run Code Online (Sandbox Code Playgroud)
所以你可以像这样设置一个变量
setx FOOBAR 1
Run Code Online (Sandbox Code Playgroud)
你可以像这样清除价值
setx FOOBAR ""
Run Code Online (Sandbox Code Playgroud)
但是,变量不会被删除,它会保留在注册表中
那么你如何实际删除变量呢?
我正在尝试在我的应用程序中设置系统环境变量,但得到一个SecurityException.我测试了我在谷歌找到的所有内容 - 没有成功.这是我的代码(注意,我是我的电脑的管理员,并以管理员身份运行VS2012):
尝试1
new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
Environment.SetEnvironmentVariable("TEST1", "MyTest", EnvironmentVariableTarget.Machine);
Run Code Online (Sandbox Code Playgroud)
尝试2
new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
using (var envKey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true))
{
Contract.Assert(envKey != null, @"HKLM\System\CurrentControlSet\Control\Session Manager\Environment is missing!");
envKey.SetValue("TEST1", "TestValue");
}
Run Code Online (Sandbox Code Playgroud)
你有什么其他的建议?
我收到一条错误消息,但不知道如何继续,错误消息显示在下面。我已经下载了它运行所需的所有工具,但密钥似乎有问题。我已经正确输入了它们,但是为了保持我的帐户的私密性,我已隐藏帐户用户名和密码。提前致谢
C:\Users\User\Downloads\real-time-intrinio-python-master\real-time-intrinio-python-master> python realtime.py AAPL
Using Ticker: AAPL
Traceback (most recent call last):
File "realtime.py", line 18, in <module>
r=requests.get(auth_url, headers={"Authorization": "Basic %s" % base64.b64encode(os.environ['myUsername'] + ":" + os.environ['myPassword'])})
File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'myUsername'
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码,第 18 行是“r=requests.get(auth_url, headers...”
import websocket
import _thread
import time
import requests
import base64
import json
import sys
import os
from requests.auth import HTTPBasicAuth
try:
print ("Using Ticker: " + str(sys.argv[1]))
except:
print ("Please include ticker as first argument") …Run Code Online (Sandbox Code Playgroud) 我在Windows7 64位机器上使用Delphi 10 Seattle.
这是问题所在:
为了为我的软件创建测试环境,我创建了一个小应用程序,将环境变量添加到Windows注册表下
HKEY_CURRENT_USER\Environment
Run Code Online (Sandbox Code Playgroud)
我在我的包和主项目的搜索路径中使用这些变量,以便能够将项目设置提交到源代码控制中,并轻松地从生产切换到测试分支等...
现在,问题是,在创建环境变量之后,Delphi不会更新其"内部系统变量存储"
Tools --> Options --> Environment Variables
Run Code Online (Sandbox Code Playgroud)
而且项目没有编译.
即使重新启动Delphi也没有带来预期的效果.我必须完全重启Windows才能使其正常工作.
有没有办法在我的应用程序中更新Delphi中的系统变量?我错过了别的什么吗?
非常感谢!