Lau*_*ron 10 powershell automation windows-7
我在办公室(Windows 7)使用笔记本电脑,有一个电台和双屏,在家里没有电台.
关键是我每次从工作站切换到笔记本电脑时都必须更改文本大小,因为我的双屏幕上的文字大小太大,但笔记本电脑屏幕上的文字太小.
要继续:我右键单击桌面屏幕,选择更改分辨率然后"获取更大或更小的文本和其他元素"以选择100%,125%等...我需要重新启动会话以获取应用的设置.(注意:我使用的是法语系统,并且我认为文本在我们的版本上并不完全相同).
它不是很方便,所以我想自动化这个,也许是使用PowerShell脚本.
理想情况下,脚本可以检测我是单独使用笔记本电脑还是使用两个屏幕的电台.另外,没有会话重启(我怀疑最后一点是可行的).
我该如何开始?如果这是可能的.
Tor*_*mme 10
正如其他答案所假设的那样,HKLM下的设置不正确,因为dpi缩放是用户定义的设置.正确的注册表项HKCU:\Control Panel\Desktop与值LogPixels.
有关所有与DPI相关的注册表设置的详细信息,请参阅与DPI相关的API和注册表设置.
我写了一个小的PowerShell脚本,根据当前的缩放更改DPI缩放并执行用户注销,所以我只需要在将设备放到不同的监视器时执行脚本.
cd 'HKCU:\Control Panel\Desktop'
$val = Get-ItemProperty -Path . -Name "LogPixels"
if($val.LogPixels -ne 96)
{
Write-Host 'Change to 100% / 96 dpi'
Set-ItemProperty -Path . -Name LogPixels -Value 96
} else {
Write-Host 'Change to 150% / 144 dpi'
Set-ItemProperty -Path . -Name LogPixels -Value 144
}
logoff;exit
Run Code Online (Sandbox Code Playgroud)
nev*_*ath 10
这是我发现的最简单的方法。我稍微修改了提供的函数,因此它很容易复制/粘贴。它不需要任何注册表调用或任何东西。简单且非常有效。
你可以这样称呼它
function Set-Scaling {
# Posted by IanXue-MSFT on
# https://learn.microsoft.com/en-us/answers/questions/197944/batch-file-or-tool-like-powertoy-to-change-the-res.html
# $scaling = 0 : 100% (default)
# $scaling = 1 : 125%
# $scaling = 2 : 150%
# $scaling = 3 : 175%
param($scaling)
$source = @'
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(
uint uiAction,
uint uiParam,
uint pvParam,
uint fWinIni);
'@
$apicall = Add-Type -MemberDefinition $source -Name WinAPICall -Namespace SystemParamInfo -PassThru
$apicall::SystemParametersInfo(0x009F, $scaling, $null, 1) | Out-Null
}
Set-Scaling -scaling 0
Run Code Online (Sandbox Code Playgroud)
显然你可以设置LogPixels属性
HKLM:/Software/Microsoft/Windows NT/CurrentVersion/FontDPI
Run Code Online (Sandbox Code Playgroud)
这在网络上很多地方都得到了重申。然而,我的印象是 dpi 是一个用户设置,在 HKLM 下没有任何意义。
抱歉,我看错问题了。我以为你想控制 PowerShell 窗口。
正如已经提到的,您可以在注册表中设置 LogPixels 设置,要查看当前设置是什么,请尝试以下操作:
Get-Item -Path Registry::'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI' | Select-Object -ExpandProperty Property
Run Code Online (Sandbox Code Playgroud)
如果 LogPixels 键存在,它将显示,如果不存在,您可以创建它:
Set-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI\LogPixels'
Run Code Online (Sandbox Code Playgroud)
注意:您必须使用允许操作注册表的权限来运行此程序。
TechNet 对此有很好的介绍。
| 归档时间: |
|
| 查看次数: |
23143 次 |
| 最近记录: |