C#和C常用的API操作窗口的代码积累

C#和C常用的API操作窗口的代码积累

IntPtr awin = MouseHookHelper.FindWindow("WeChatMainWndForPC", "微信");
if (awin == IntPtr.Zero)
{
   
    MessageBox.Show("没有找到窗体");
    return;
}
2.获取窗体坐标信息
MouseHookHelper.RECT rect = new MouseHookHelper.RECT();
MouseHookHelper.GetWindowRect(awin, ref rect);
int width = rect.Right - rect.Left;             //窗口的宽度
int height = rect.Bottom - rect.Top;            //窗口的高度
int x = rect.Left;
int y = rect.Top;
3.设置为当前窗体
MouseHookHelper.SetForegroundWindow(awin);
MouseHookHelper.ShowWindow(awin,MouseHookHelper.SW_SHOWNOACTIVATE);//4、5
4.点击某个坐标
LeftMouseClick(new MouseHookHelper.POINT()
{
   
    X = ppp.MsgX,
    Y = ppp.MsgY
});
 
private static void LeftMouseClick(MouseHookHelper.POINT pointInfo)
{
   
 
    //先移动鼠标到指定位置
    MouseHookHelper.SetCursorPos(pointInfo.X, pointInfo.Y);
 
    //按下鼠标左键
    MouseHookHelper.mouse_event(MouseHookHelper.MOUSEEVENTF_LEFTDOWN,
                pointInfo.X * 65536 / Screen.PrimaryScreen.Bounds.Width,
                pointInfo.Y * 65536 / Screen.PrimaryScreen.Bounds.Height, 0, 0);
 
    //松开鼠标左键
    MouseHookHelper.mouse_event(MouseHookHelper.MOUSEEVENTF_LEFTUP,
                pointInfo.X * 65536 / Screen.PrimaryScreen.Bounds.Width,
                pointInfo.Y * 65536 / Screen.PrimaryScreen.Bounds.Height, 0, 0);
 
}
5.复制粘贴操作
//复制到剪贴板
Clipboard.SetText("test");
//从剪贴板获取数据
Clipboard.GetText();
//粘贴
SendKeys.SendWait("^V");
//回车键
SendKeys.Send("{Enter}");
6.钩子的使用
private void button1_Click(object sender, EventArgs e)
{
   
    if (hHook == 0)
    {
   
        MyProcedure = new MouseHookHelper.HookProc(this.MouseHookProc);
        //这里挂节钩子
        hHook = MouseHookHelper.SetWindowsHookEx(WH_MOUSE_LL, MyProcedure, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);
        if (hHook == 0)
        {
   
            MessageBox.Show("请以管理员方式打开");
            return;
        }
        button1.Text = "卸载钩子";
    }
    else
    {
   
        bool ret = MouseHookHelper.UnhookWindowsHookEx(hHook);
        if (ret == false)
        {
   
            MessageBox.Show("请以管理员方式打开");
            return;
        }
        hHook = 0;
        button1.Text = "安装钩子";
    }
}
        
        
private int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)
{
   
 
    MouseHookHelper.MouseHookStruct MyMouseHookStruct = (MouseHookHelper.MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookHelper.MouseHookStruct));
    if (nCode < 0)
    {
   
        return MouseHookHelper.CallNextHookEx(hHook, nCode, wParam, lParam);
    }
    else
    {
   
        String strCaption = "x = " + MyMouseHookStruct.pt.X.ToString("d") + "  y = " + MyMouseHookStruct.pt.Y.ToString("d");
        this.Text = strCaption;
        return MouseHookHelper.CallNextHookEx(hHook, nCode, wParam, lParam);
    }
}
7.MouseHookHelper代码
 
public class MouseHookHelper
    {
   
 
        #region 根据句柄寻找窗体并发送消息
 
        [
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值