1. 获取所有进程,根据窗体标题获取 窗体句柄
//MainWindowHandle 进程窗体句柄
Process[] ps = Process.GetProcesses();
foreach (Process pr in ps)
{
if (pr.MainWindowTitle.IndexOf(" 电子客票报销凭证") != -1)
{
ShowWindow(pr.MainWindowHandle, 3);//全屏显示
SetWindowPos(pr.MainWindowHandle, HWND_TOPMOST, 1, 1, 1, 1, SWP_NOMOVE | SWP_NOSIZE);//让窗体置顶显示
break;
}
}
//屏幕 最小,最大,最合适 和 关闭
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
//让窗体置顶显示
[DllImport("user32.dll")]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
//移动鼠标坐标 SetCursorPos(166, 150);//定位鼠标
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
//模拟鼠标 mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.LeftUp), 166, 150, 0, IntPtr.Zero);//鼠标事件
public enum MouseEventFlags
{
Move = 0x0001,
LeftDown = 0x0002,
LeftUp = 0x0004,
RightDown = 0x0008,
RightUp = 0x0010,
MiddleDown = 0x0020,
MiddleUp = 0x0040,
Wheel = 0x0800,
Absolute = 0x8000
}
[DllImport("User32")]
public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
//模拟键盘
[System.Runtime.InteropServices.DllImport("user32")]
static extern void keybd_event(
byte bVk,
byte bScan,
uint dwFlags,
uint dwExtraInfo
);
const uint KEYEVENTF_EXTENDEDKEY = 0x1;
const uint KEYEVENTF_KEYUP = 0x2;
//获取鼠标坐标
[DllImport("user32.dll", EntryPoint = "GetCursorPos")]
public static extern bool GetCursorPos(out Point pt);
//获取鼠标处的窗体句柄
[DllImport("user32.dll", EntryPoint = "WindowFromPoint")]
public static extern IntPtr WindowFromPoint(Point pt);
// 改变窗口的标题
[DllImport("user32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
private const int WM_SETTEXT = 0x000C;
/// <summary>
/// 给窗口发送内容
/// </summary>
/// <param name="hWnd">句柄</param>
/// <param name="lParam">要发送的内容</param>
public static void SetText(IntPtr hWnd, string lParam)
{
SendMessage(hWnd, WM_SETTEXT, IntPtr.Zero, lParam);
}