0
我創建了一個窗體並在窗體中添加了兩個按鈕和一個瀏覽器。我用一個程序來獲取鼠標座標並點擊登錄按鈕。我想在不移動光標的情況下實現這一點。 我不想查找登錄按鈕ID或使用HTML請求/響應。模擬鼠標在瀏覽器中單擊不移動光標
任何想法是否可以在瀏覽器中單擊非HTML按鈕而不移動光標。
之下,但僅適用於表單中的其他控件,但不是因爲這是形式的一部分
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace simulateclicktest
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int Msg,
IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", EntryPoint = "WindowFromPoint",
CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr WindowFromPoint(Point point);
private const int BM_CLICK = 0x00F5;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Specify the point you want to click
var screenPoint = new Point(157
,455);
// Get a handle
var handle = WindowFromPoint(screenPoint);
// Send the click message
if (handle != IntPtr.Zero)
{
SendMessage(handle, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
}
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("clicked");
}
}
}
正如我所說的,我很想用鼠標單擊按鈕而不移動光標。 – user3726459
對。此代碼模擬網頁瀏覽器中的按鈕點擊。您可以在任何功能中使用(不僅僅是按鈕點擊事件)。 – c4pricorn
我已經知道如何做到這一點,這不完全是我正在尋找的。我正在查找代碼以將鼠標單擊消息發送給應用程序。我有我的代碼工作。 SendMessage(hWnd,0x0201,0,myparam);而不是SendMessage(句柄,BM_CLICK,IntPtr.Zero,IntPtr.Zero);登錄按鈕不是HTML – user3726459