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 Test
{
public partial class IntptrDemo : Form
{
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll", EntryPoint = "FindWindowEx")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
[DllImport("User32.DLL")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, uint hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint wMsg, IntPtr wParam, string lParam);
[DllImport("user32.dll", EntryPoint = "SetForegroundWindow", SetLastError = true)]
private static extern void SetForegroundWindow(IntPtr hwnd);
public IntptrDemo()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show("连接件问题", "Error", MessageBoxButtons.YesNoCancel);
textBox1.Text += dr.ToString()+"\r\n";
}
private void button2_Click(object sender, EventArgs e)
{
const int BM_CLICK = 0xF5;
IntPtr mainHwnd = FindWindow(null, "Design");
if (mainHwnd != IntPtr.Zero)
{
IntPtr childHwnd = FindWindowEx(mainHwnd, IntPtr.Zero, null, "否(&N)");
if (childHwnd != IntPtr.Zero)
{
SendMessage(childHwnd, BM_CLICK, 0, 0); //发送点击按钮的消息
}
else
{
MessageBox.Show("没有找到取消按钮了");
}
}
}
private void button3_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
}
}