首页 > 解决方案 > 高亮指针位置

问题描述

我有一个奇怪的任务要求。总的来说,我需要使用 PowerShell 脚本为演示文稿准备 Windows PC,其中一项要求是在扩展指针设置中激活“如果按下 ctrl 则突出显示指针位置”功能。

我的第一个想法是更改 reg-key,但如果这甚至可行,我认为它将与 PC 重新启动相关联。在发现功能的开启和关闭状态的差异后,我已经尝试更改键的值,但我不能强制它“刷新设置”,否则它根本不起作用。

任何想法、解决方法等都会被应用。

该功能由 Reg-Key HKCU:\Control Panel\Desktop - UserPrefernecesMask 控制

标签: windowspowershell

解决方案


可以使用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)

无需重新启动计算机,立即生效。


推荐阅读