我使用 windows magnifier api 在 autohotkey 中创建了一个以鼠标为中心的放大镜。在 Windows 7 中完成,在新的 Windows 8、8.1 甚至 10 LTSB 上工作。但它似乎在 Windows 10 创建者更新、红石 3 更新中中断,这继续到 Windows 10 红石 4 和现在的 Windows 10 红石 5。当然,没有找到答案。
问题是,在放大时,单击屏幕的某个位置会导致单击位置好像它不存在、屏幕之外或无处,从而使窗口散焦。
我使用来自https://code.msdn.microsoft.com/windowsdesktop/Magnification-API-Sample-14269fd2的放大镜 api 示例 进行了测试,还使用下面的简单 C# 控制台应用程序进行了测试;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Magnifier
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(MagInitialize());
Console.WriteLine(MagSetFullscreenTransform(4.0f, 0, 0));
Console.ReadLine();
MagUninitialize();
}
[DllImport("Magnification.dll")]
public static extern bool MagInitialize();
[DllImport("Magnification.dll")]
public static extern bool MagSetFullscreenTransform(float a, int b, int d);
[DllImport("Magnification.dll")]
public static extern bool MagUninitialize();
[DllImport("Magnification.dll")]
public static extern bool MagShowSystemCursor(bool a);
}
}
我在另一台安装了 Windows 10 redstone 4 的计算机上对其进行了测试,仍然相同。
任何人都知道它是怎么回事,为什么会发生,以及如何解决它?