0

我正在为我的 WPF 应用程序使用 Teststack 白色框架(C#、.net)编写一些自动化测试。我希望在测试运行时冻结任何光标移动。有没有办法做到这一点?

我已经试过了

public partial class NativeMethods
{
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool BlockInput(bool fBlockIt);
}

但它不起作用,因为我的应用程序没有以管理员权限运行

我试过 NativeMethods.BlockInput(true);

我收到拒绝访问异常

4

1 回答 1

0

我认为你可以使用 ClipCursor

[DllImport("user32.dll")]
    static extern void ClipCursor(ref System.Drawing.Rectangle rect);

    [DllImport("user32.dll")]
    static extern void ClipCursor(IntPtr rect);

    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = this;
        this.Loaded += MainWindow_Loaded;
        this.MouseMove += Window_MouseMove;
    }

    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        this.WindowState = WindowState.Maximized;
        HideMouse();
    }
    private void Window_MouseMove(object sender, MouseEventArgs e)
    {
        HideMouse();
    }

    private void HideMouse()
    {
        System.Drawing.Rectangle r = new System.Drawing.Rectangle(0, 0, 0, 0);
        ClipCursor(ref r);
    }
于 2019-04-15T08:18:54.067 回答