c#句柄相关(往别的程序加自己的内容)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)

        {

//类名,标题名  这些参数可以通过vs的工具spy++来找

            IntPtr calculatorHandle = FindWindow("WindowsForms10.Window.8.app.0.33c0d9d", "翟光磊");
            //验证当前窗体是一个正在运行的
            if (calculatorHandle == IntPtr.Zero)
            {
                MessageBox.Show("Calculator is not running.");
                return;
            }
            
            执行左键按下
            //mouse_event(MouseEventFlag.LeftDown, 775, 1173, 0, UIntPtr.Zero);
            执行左键松开 
            //mouse_event(MouseEventFlag.LeftUp, 775, 1173, 0, UIntPtr.Zero);
            //获得焦点 
            uint WM_SETFOCUS = 0x07;
            SendMessage(calculatorHandle, WM_SETFOCUS, IntPtr.Zero, IntPtr.Zero);

    //找子窗口
            IntPtr aa = FindWindowEx(calculatorHandle, IntPtr.Zero, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr bb = FindWindowEx(aa, IntPtr.Zero, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr cc = FindWindowEx(bb, IntPtr.Zero, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr c1 = FindWindowEx(bb, cc, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr c2 = FindWindowEx(bb, c1, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr c3 = FindWindowEx(bb, c2, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr dd = FindWindowEx(bb, c3, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr ee = FindWindowEx(dd, IntPtr.Zero, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr ff = FindWindowEx(ee, IntPtr.Zero, "WindowsForms10.Window.8.app.0.33c0d9d", null);
            IntPtr gg = FindWindowEx(ff, IntPtr.Zero, "Shell Embedding", null);
            IntPtr hh = FindWindowEx(gg, IntPtr.Zero, "Shell DocObject View", null);
            IntPtr ii = FindWindowEx(hh, IntPtr.Zero, "Internet Explorer_Server", null);


            // Make Calculator the foreground application and send it 
            // a set of calculations.
            SetForegroundWindow(ii);
            SendKeys.SendWait("做实验-0-");
            SendKeys.SendWait("^{ENTER}");
        }


        //得到一个应用程序窗口的句柄.
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName,
            string lpWindowName);
        // 激活应用程序窗口.
        [DllImport("USER32.DLL")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);


        //[DllImport("user32.dll")]
        //static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);


        [DllImport("User32.dll", EntryPoint = "SendMessage")]
        private static extern int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
                                                                                                
        [DllImport("User32.dll", EntryPoint = "SendMessage")]
        private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
        //SendMessage的三个参数意思分别为
        //参数1:接收消息的控件的句柄
        //参数2:消息类型   比如WM_LBUTTONDOWN
        //参数3:消息的附加信息   比如要传递一些文字啊.或者坐标信息




        [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
        private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
        [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
        private static extern IntPtr FindWindowEx(IntPtr hwndParent, int hwndChildAfter, string lpszClass, string lpszWindow);




        //[Flags]
        //enum MouseEventFlag : uint
        //{
        //    Move = 0x0001,
        //    LeftDown = 0x0002,
        //    LeftUp = 0x0004,
        //    RightDown = 0x0008,
        //    RightUp = 0x0010,
        //    MiddleDown = 0x0020,
        //    MiddleUp = 0x0040,
        //    XDown = 0x0080,
        //    XUp = 0x0100,
        //    Wheel = 0x0800,
        //    VirtualDesk = 0x4000,
        //    Absolute = 0x8000
        //} 




    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值