windows - 高亮指针位置
问题描述
我有一个奇怪的任务要求。总的来说,我需要使用 PowerShell 脚本为演示文稿准备 Windows PC,其中一项要求是在扩展指针设置中激活“如果按下 ctrl 则突出显示指针位置”功能。
我的第一个想法是更改 reg-key,但如果这甚至可行,我认为它将与 PC 重新启动相关联。在发现功能的开启和关闭状态的差异后,我已经尝试更改键的值,但我不能强制它“刷新设置”,否则它根本不起作用。
任何想法、解决方法等都会被应用。
该功能由 Reg-Key HKCU:\Control Panel\Desktop - UserPrefernecesMask 控制
解决方案
可以使用SystemParametersInfo
里面的功能启用或禁用“鼠标声纳”功能user32.dll
。
要在 PowerShell 中使用它,请添加一些 CSharp:
Add-Type -TypeDefinition @'
using System.Runtime.InteropServices;
public class MouseSonar {
public const uint SPI_SETMOUSESONAR = 0x101D;
public const uint SPIF_UPDATEINIFILE = 0x01;
public const uint SPIF_SENDCHANGE = 0x02;
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern int SystemParametersInfo (uint uAction, uint uParam, bool lpvParam, uint fuWinIni);
public static void SetSonar (bool Enable) {
SystemParametersInfo(SPI_SETMOUSESONAR, 0, Enable, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
}
'@
并像这样使用它:
# turn Mouse Sonar on
[MouseSonar]::SetSonar($true)
# to switch Mouse Sonar off again:
[MouseSonar]::SetSonar($false)
无需重新启动计算机,立即生效。
推荐阅读
- google-apps-script - 谷歌表格根据值移动行并编辑值
- angular - Angular Material - 在数据源更改时保留原始复选框选择
- automated-tests - Cypress.moment 使用语言环境
- extjs - 如何配置 Ext.grid.plugin.Editable 按钮?
- c - C - 前向声明和使用结构而不是指针
- hadoop - flink 如何从 HDFS 读取 4mc 数据
- python - Mojave 命令“gcc”失败,退出状态为 1
- c - 在 ca 中的 if 语句中声明一个变量是坏习惯吗?
- java - 使用 netbeans ide 构建 apache ignite
- java - java.sql.SQLNonTransientConnectionException