Получение позиции курсора мыши в окне

171
03 октября 2018, 19:30

У меня возникла такая проблема:

Есть приложение, там время от времени появляется табличка с выбором типа "да / нет".

Нужно жмякнуть "да". Пробовал наводить на кнопку, брать координаты курсора. Но! Нужно сделать типа защиты от разрешение экрана, ибо одни и те же координаты при разном разрешении расположены в разных местах.

Так вот, думаю просто взять положение курсора именно в окне. Как это сделать?

P.S Если знаете, подскажите пожалуйста, может быть есть какие-то другие пути решения проблемы?

Answer 1

И так нужно получить координаты окна запущенного приложения.

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetWindowRect(HandleRef hWnd, out RECT lpRect);
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;        // x position of upper-left corner
            public int Top;         // y position of upper-left corner
            public int Right;       // x position of lower-right corner
            public int Bottom;      // y position of lower-right corner
            public override string ToString()
            {
                return string.Format("{0,4} {1,4} {2,4} {3,4}", Left, Top, Right, Bottom);
            }
        }
        static void Main(string[] args)
        {
            var proc = Process.GetProcessesByName("Notepad++");
            RECT rct;
            if (!GetWindowRect(new HandleRef(null, proc[0].MainWindowHandle), out rct))
            {
                Console.WriteLine("ERROR");
                return;
            }
            Console.WriteLine(rct.ToString());
            Console.ReadKey();
        }
    }
}

Далее таким же образом получаем координаты окна сообщения и дочернего элемента кнопки, на этом всё.

READ ALSO
Передача Bitmap из C# в C++

Передача Bitmap из C# в C++

Собственно вопрос: каким способом можно передать изображение (Bitmap) Из программы, написанной на C# в библиотеку C++Заранее благодарен за ответы

138
Почему различаются ParameterExpression?

Почему различаются ParameterExpression?

Разбираюсь с динамическим построением лямбда-запросов

173
Действия в программе в свернутом режиме

Действия в программе в свернутом режиме

У меня появилась такая проблема:

161
Asset Bundles Unity не загружаются в билде под UWP

Asset Bundles Unity не загружаются в билде под UWP

Работаю над приложением для Mixed RealityЗадача загружать сцены из интернета и загружать их соответственно

168