using System.Runtime.InteropServices;
using System.Diagnostics;
namespace 发送消息
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 发送信息_Click(object sender, EventArgs e)
{
Process[] ps = Process.GetProcessesByName("calc");
if (ps.Length == 0)
{
MessageBox.Show("未找到计算器");
}
Process p = ps[0];
IntPtr calcHandle = p.MainWindowHandle;
PostMessage((int)calcHandle, 256, 0x31, 0); //发送1
PostMessage((int)calcHandle, 256, 0xbb, 0); //发送 +
PostMessage((int)calcHandle, 256, 0x39, 0); //发送 9
PostMessage((int)calcHandle, 256, 0x0D, 0); //发送 {ENTER}
}
/// <summary>
///没送消息
/// </summary>
/// <param name="hwnd"> hwnd ----------- Long,接收消息的那个窗口的句柄。如设为HWND_BROADCAST,表示投递给系统中的所有顶级窗口。如设为零,表示投递一条线程消息(参考PostThreadMessage)</param>
/// <param name="wMsg"> wMsg ----------- Long,消息标识符</param>
/// <param name="wParam"> wParam --------- Long,具体由消息决定</param>
/// <param name="lParam"> lParam --------- Any,具体由消息决定</param>
/// <returns></returns>
[DllImport("user32.dll", EntryPoint = "PostMessage")]
public static extern int PostMessage(
int hwnd,
int wMsg,
int wParam,
int lParam
);
}
}