Windows11 25H2 26220.9223关于第三方鼠标指针自定义不显示完全的问题。

渚栀楓柒 55 信誉分
2026-08-24T12:22:45.34+00:00

我在更新Windows 26220.9223版本之后,再次开机发现第三方自定义鼠标指针子分类的“正常选项”无法正确生效,但是在系统设置辅助功能里面的鼠标指针与触控中显示的预览图是正常的,请问如何解决?

前提:鼠标驱动已更新至最新,鼠标型号为华硕ROG影刃3无线版,驱动版本号为4.00.02,2.4GHz接收器版本为7.00.08,尝试更换其他第三方指针依旧只有“正常选项”一类失效,其他分类生效。
正常选择类鼠标指针显示其他分类(例如文本选择)鼠标指针显示

Windows 预览体验计划 | Windows Insider Preview | 输入、触摸和鼠标
0 个注释 无注释

问题作者接受的答案
春山如黛 100 信誉分
2026-08-28T02:46:49.1666667+00:00

新建ps1文件并复制粘贴以下代码,用powershell运行即可

$ErrorActionPreference = 'Stop'
Set-StrictMode -Version Latest
if (-not ('CursorSchemeNative' -as [type])) {
    Add-Type @'
using System;
using System.Runtime.InteropServices;
public static class CursorSchemeNative
{
    [DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern IntPtr LoadCursorFromFile(string fileName);
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool SetSystemCursor(IntPtr cursor, uint cursorId);
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool DestroyCursor(IntPtr cursor);
}
'@
}
$cursorSettings = Get-ItemProperty `
    -LiteralPath 'Registry::HKEY_CURRENT_USER\Control Panel\Cursors'
$cursorMappings = @(
    [pscustomobject]@{ Role = 'Arrow';       CursorId = [uint32]32512 }
    [pscustomobject]@{ Role = 'IBeam';       CursorId = [uint32]32513 }
    [pscustomobject]@{ Role = 'Wait';        CursorId = [uint32]32514 }
    [pscustomobject]@{ Role = 'Crosshair';  CursorId = [uint32]32515 }
    [pscustomobject]@{ Role = 'UpArrow';    CursorId = [uint32]32516 }
    [pscustomobject]@{ Role = 'NWPen';      CursorId = [uint32]32631 }
    [pscustomobject]@{ Role = 'SizeNWSE';   CursorId = [uint32]32642 }
    [pscustomobject]@{ Role = 'SizeNESW';   CursorId = [uint32]32643 }
    [pscustomobject]@{ Role = 'SizeWE';     CursorId = [uint32]32644 }
    [pscustomobject]@{ Role = 'SizeNS';     CursorId = [uint32]32645 }
    [pscustomobject]@{ Role = 'SizeAll';    CursorId = [uint32]32646 }
    [pscustomobject]@{ Role = 'No';         CursorId = [uint32]32648 }
    [pscustomobject]@{ Role = 'Hand';       CursorId = [uint32]32649 }
    [pscustomobject]@{ Role = 'AppStarting';CursorId = [uint32]32650 }
    [pscustomobject]@{ Role = 'Help';       CursorId = [uint32]32651 }
    [pscustomobject]@{ Role = 'Pin';        CursorId = [uint32]32671 }
    [pscustomobject]@{ Role = 'Person';     CursorId = [uint32]32672 }
)
foreach ($mapping in $cursorMappings) {
    Write-Host ''
    Write-Host "========== $($mapping.Role) =========="
    $configuredPath = $cursorSettings.($mapping.Role)
    if ([string]::IsNullOrWhiteSpace([string]$configuredPath)) {
        Write-Host 'Registry path is empty.' -ForegroundColor Yellow
        continue
    }
    $cursorPath = [Environment]::ExpandEnvironmentVariables(
        [string]$configuredPath
    ).Trim('"')
    Write-Host "Path: $cursorPath"
    Write-Host "Cursor ID: $($mapping.CursorId)"
    if (-not (Test-Path -LiteralPath $cursorPath -PathType Leaf)) {
        Write-Host 'FILE NOT FOUND' -ForegroundColor Red
        continue
    }
    Write-Host 'File exists.'
    $cursorHandle = [CursorSchemeNative]::LoadCursorFromFile(
        $cursorPath
    )
    if ($cursorHandle -eq [IntPtr]::Zero) {
        $errorCode = [Runtime.InteropServices.Marshal]::GetLastWin32Error()
        Write-Host "LOAD FAILED - Win32 Error: $errorCode" `
            -ForegroundColor Red
        continue
    }
    Write-Host "LoadCursorFromFile: SUCCESS"
    Write-Host "Handle: $cursorHandle"
    $result = [CursorSchemeNative]::SetSystemCursor(
        $cursorHandle,
        $mapping.CursorId
    )
    if ($result) {
        Write-Host "SetSystemCursor: SUCCESS" `
            -ForegroundColor Green
        # IMPORTANT:
        # SetSystemCursor takes ownership of the cursor handle.
        # Do not call DestroyCursor after success.
    }
    else {
        $errorCode = [Runtime.InteropServices.Marshal]::GetLastWin32Error()
        Write-Host "SetSystemCursor: FAILED" `
            -ForegroundColor Red
        Write-Host "Win32 Error: $errorCode"
        [void][CursorSchemeNative]::DestroyCursor(
            $cursorHandle
        )
    }
}
Write-Host ''
Write-Host '============================================================'
Write-Host 'Test finished.'
Write-Host 'NO SPI_SETCURSORS WAS CALLED.'
Write-Host '============================================================'

此答案是否有帮助?

20+ 个人认为此答案很有帮助。

问题作者接受的答案
D F 85 信誉分
2026-08-27T17:51:25.6466667+00:00

这是视频链接,在简介栏有修复工具的链接,我试了一下成功了:

https://www.bilibili.com/video/BV1REhA61EdT/?vd_source=541fd6cafd1d98f4d19b8c9919faa907

如果运行了没有效果或者无法运行,请参见以下链接内的解决方法:

https://blog.csdn.net/qq_36241539/article/details/118525367

此答案是否有帮助?

4 个人认为此答案很有帮助。

2 个其他答案

排序依据: 最早
  1. MicrodreaM 5 信誉分
    2026-08-28T01:42:41.5066667+00:00

    26200.9278依旧有这个问题,麻了,这还是公开推送的版本。

    此答案是否有帮助?

    7 个人认为此答案很有帮助。

  2. 李和联 0 信誉分
    2026-08-28T02:40:18.28+00:00

    我在更新后也出现此问题,删除更新后回复正常

    此答案是否有帮助?


你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。