turanian Ответов: 1

Как поймать событие щелчка и точку в форме - & gt;панель - & gt;встроенный exe, winform C#


Привет,
У меня есть форма.
Я запускаю exe-файл внутри WinForm вот так:

exe находится в панели, панель - в форме.

Этот код загружает exe-файл в панель. Все в порядке.
private void Form1_Load(object sender, EventArgs e)
{
    var path = @"C:\Users\Toshiba\WindowsApp.exe";
    Process p = Process.Start(path);
    Thread.Sleep(500); // Allow the process to open it's window
    IntPtr ptr = IntPtr.Zero;
    while ((ptr = p.MainWindowHandle) == IntPtr.Zero) ;
    SetParent(p.MainWindowHandle, panel1.Handle);
    MoveWindow(p.MainWindowHandle, 0, 0, this.Width - 90, this.Height, true);
    p.EnableRaisingEvents = true;

}



Когда я нажимаю на любую точку exe-файла,мне нужно поймать ее точку(x, y).Как я могу поймать это событие, возможно ли это?

Спасибо.

Что я уже пробовал:

Я пытаюсь этот код поймать событие щелчка в панели (exe находится в панели). Но этот код не дал желаемых результатов .
const int WM_PARENTNOTIFY = 0x0210;
const int WM_LBUTTONDOWN = 0x0201;
protected override void WndProc(ref Message m)
{
    if (!this.DesignMode)
    {
        if (m.Msg == WM_PARENTNOTIFY)
        {
            if (m.WParam.ToInt32() == WM_LBUTTONDOWN)
            {
            }
        }
    }
    base.WndProc(ref m);
}

turanian

У кого-нибудь есть предложение ?

BillWoodruff

Посмотрите на использование GlobalMouseHook. Есть несколько статей об этом здесь, на CP.

turanian

Спасибо :) https://github.com/gmamaladze/globalmousekeyhook линк решил мою проблему.

1 Ответов

Рейтинг:
5

turanian

GlobalMouseHook линк решил мою проблему.