// Program.cs
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.Diagnostics;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//查找窗口API
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
//查找窗口内控件句柄
[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
//发送消息
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);
private void button1_Click(object sender, EventArgs e)
{
IntPtr mW = FindWindow(null, "MyForm");
if (mW != IntPtr.Zero)
{
MessageBox.Show("找到程序窗口!");
IntPtr et = FindWindowEx(mW, IntPtr.Zero, "WindowsForms10.EDIT.app.0.2bf8098_r16_ad1", null); //第三个参数使用spy++找的,不要告诉我不知道呀
if (et != IntPtr.Zero) {
MessageBox.Show("找到文本框!");
StringBuilder s1 = new StringBuilder(512);
SendMessage(et, 0x000d, 510, s1); //0x000d是向控件发送获取文本消息的消息编号
MessageBox.Show(s1.ToString());
} else {
MessageBox.Show("没找到文本框!");
}
}
else {
MessageBox.Show("没有窗口!");
}
}
}
}