重要
已过时,仅Visual Studio 2022需要此操作,新版Visual Studio 2026内置的PowerShell已经自带命令补全(PSReadLine)
如果你下载了Windows Terminal和最新版的PowerShell Core就会发现,
如果不特殊设置的话,即使我们使用的Windows Terminal拥有命令补全,Visual Studio 2022的终端仍然没有任何补全。
重要
已过时,仅Visual Studio 2022需要此操作,新版Visual Studio 2026内置的PowerShell已经自带命令补全(PSReadLine)
如果你下载了Windows Terminal和最新版的PowerShell Core就会发现,
如果不特殊设置的话,即使我们使用的Windows Terminal拥有命令补全,Visual Studio 2022的终端仍然没有任何补全。
最近遇到了一个比较奇怪的需求:我的电脑只能访问到局域网内的服务器A,而服务器A可以访问到服务器B国内网络,
服务器B可以访问到国外网络。
当电脑简单地使用服务器A进行代理的时候,就可以变成正常的家庭网络了(只能访问国内网络);
但我此时需要使用服务器B进行代理以访问github的时候,发现系统代理已经被设置了。
这时我想起用Proxifier解决这个问题。
Proxifier通过对R0层劫持过滤驱动实现对所有软件都几乎透明的代理。
使用这个软件的原因除了可以更方便地处理路由之外,还是为了让不走系统代理的应用也可以走代理。
此外,实现嵌套代理也离不开它。
修改IP、网关、子网掩码、DNS等配置时需要打开网络配置器配置,有些麻烦。尤其是经常需要重复性操作时(例如去学校图书馆蹭网)。用PowerShell脚本自动修改,方便简单而且十分轻量,程序只需占用1KB空间。
参考[1]
param([int] $inputNum)
$cim = Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "IPEnabled = True"
function CheckReturn {
param ($obj)
if ($obj.ReturnValue -eq 0) {
"Successed"
}
else {
"Failed"
}
}
if ($inputNum -eq 0) {
CheckReturn(Invoke-CimMethod $cim -MethodName EnableDHCP)
CheckReturn(Invoke-CimMethod $cim -MethodName SetDNSServerSearchOrder)
}
elseif (($inputNum -gt 0) -and ($inputNum -lt 254)) {
CheckReturn(Invoke-CimMethod $cim -MethodName EnableStatic -Arguments @{
IPAddress = @("10.200.200." + $inputNum.ToString());
SubnetMask = @("255.255.255.0")
})
CheckReturn(Invoke-CimMethod $cim -MethodName SetGateways -Arguments @{
DefaultIPGateway = @("10.200.200.254")
})
CheckReturn(Invoke-CimMethod $cim -MethodName SetDNSServerSearchOrder -Arguments @{
DNSServerSearchOrder = @("114.114.114.114")
})
}
else {
"Input number between 1 to 253 to set network adapter, or 0 to disable network adapter"
}
在学校生活时经常有一种需求:访问某些网站(如校内系统)时需要使用校园网,访问另一些网站(如Steam、Github等)校园网很慢,需要使用手机浏览器等其他网络加速。此时我就觉得如果能同时使用两个网络该多好。
本文就介绍如何用PowerShell[1]实现这个功能(需要Windows平台,版本XP及以上)。
首先需要明确,同一张网卡是无法同时连接两个网络的(除非同时使用多个代理达到这种效果)。幸运的是,现在绝大多数电脑都同时拥有有线和无线两张网卡,所以可以实现这个效果。
紧接上篇《Windows用注册表修改键盘映射(扫描码)》,
用起来会发现处处不协调,除了需要熟悉新键位以外,最重要的是原本的快捷键也被拆散了,如原本都在左下角的Ctrl+Z/X/C/V。
所以我们应该在保证快捷键相对位置不变的情况下,修改其他字母的位置,在本专栏中使用键盘钩子(Keyboard Hook)。
使用C/C++代码方式修改可见下篇《用C/C++(Win32API)写软件修改键位》
据说Qwerty键盘是为了降低打字员打字速度,防止打字机卡机所作出的妥协。那么现在的键盘是否降低了咱敲代码的速度?试试看换成其他的键盘布局吧。
注:注册表修改映射的方法比较麻烦,但适用性还挺高,不需要依靠其他软件,所以不会被软件或游戏认定为作弊。