下面是一个完整的 WPF 应用程序示例。该示例包括一个简单的用户界面,用户可以通过按钮来开始和停止鼠标的持续点击。(注:点击开始后鼠标移动到需要点击的位置即可)
完整的 WPF Demo
创建新的 WPF 项目:
打开 Visual Studio,选择“创建新项目”。
选择“WPF 应用程序”,然后点击“下一步”。
输入项目名称,选择保存位置,然后点击“创建”。
添加图标(可选):
按照之前的步骤添加图标文件。
修改 MainWindow.xaml
:
打开 MainWindow.xaml 文件,并将其内容替换为以下代码:
<Window x:Class="MouseClicker.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Mouse Clicker" Height="200" Width="300">
<Grid>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<Button Name="StartButton" Content="开始点击" Width="100" Margin="10" Click="StartButton_Click"/>
<Button Name="StopButton" Content="停止点击" Width="100" Margin="10" IsEnabled="False" Click="StopButton_Click"/>
</StackPanel>
</Grid>
</Window>
修改 MainWindow.xaml.cs
:
打开 MainWindow.xaml.cs 文件,并将其内容替换为以下代码:
using System;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows;
using System.Windows.Threading;
namespace MouseClicker
{
public partial class MainWindow : Window
{
[DllImport("user32.dll")]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, UIntPtr dwExtraInfo);
private const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
private const uint MOUSEEVENTF_LEFTUP = 0x0004;
private Thread clickThread;
private bool isClicking;
public MainWindow()
{
InitializeComponent();
}
private void StartButton_Click(object sender, RoutedEventArgs e)
{
if (clickThread == null || !clickThread.IsAlive)
{
isClicking = true;
clickThread = new Thread(ClickMouse);
clickThread.IsBackground = true;
clickThread.Start();
StartButton.IsEnabled = false;
StopButton.IsEnabled = true;
}
}
private void StopButton_Click(object sender, RoutedEventArgs e)
{
isClicking = false;
StartButton.IsEnabled = true;
StopButton.IsEnabled = false;
}
private void ClickMouse()
{
// 获取屏幕中心点
int screenWidth = (int)SystemParameters.PrimaryScreenWidth;
int screenHeight = (int)SystemParameters.PrimaryScreenHeight;
int x = screenWidth / 2;
int y = screenHeight / 2;
while (isClicking)
{
// 模拟鼠标左键按下
mouse_event(MOUSEEVENTF_LEFTDOWN, (uint)x, (uint)y, 0, UIntPtr.Zero);
// 模拟鼠标左键抬起
mouse_event(MOUSEEVENTF_LEFTUP, (uint)x, (uint)y, 0, UIntPtr.Zero);
// 等待一段时间,控制点击频率
Thread.Sleep(100); // 100毫秒
}
}
}
}
说明
用户界面:应用程序包含两个按钮,一个用于开始点击,另一个用于停止点击。
鼠标点击逻辑:使用 mouse_event 函数模拟鼠标的左键按下和抬起。点击发生在屏幕的中心位置。
线程处理:使用一个后台线程来处理鼠标点击,以避免阻塞UI线程。
开始和停止控制:通过 isClicking 变量控制点击的开始和结束,确保用户可以通过按钮控制鼠标点击。
运行程序
生成并运行该项目。
点击“开始点击”按钮,鼠标将开始在屏幕中心位置持续点击。
点击“停止点击”按钮,鼠标点击将停止。
注意事项
请确保在合适的环境中运行此程序,以避免意外的鼠标操作。
你可以根据需要调整 Thread.Sleep(100)
中的时间,以改变点击频率。