黑盒软件自动化测试工具,借助API实现黑盒自动化测试工具的编写

private void button1_Click(object sender, EventArgs e)

{

//获取测试程序的窗体句柄

IntPtr mainWnd = FindWindow(null, "FormLogin");

List listWnd = new List();

//获取窗体上OK按钮的句柄

IntPtr hwnd_button = FindWindowEx(mainWnd, new IntPtr(0), null, "OK");

//获取窗体上所有控件的句柄

EnumChildWindows(mainWnd, new CallBack(delegate(IntPtr hwnd, int lParam)

{

listWnd.Add(hwnd);

return true;

}), 0);

foreach (IntPtr item in listWnd)

{

if (item != hwnd_button)

{

char[] UserChar = "luminji".ToCharArray();

foreach (char ch in UserChar)

{

SendChar(item, ch, 100);

}

}

}

SendMessage(hwnd_button, WM_CLICK, mainWnd, "0");

}

public void SendChar(IntPtr hand, char ch, int SleepTime)

{

PostMessage(hand, WM_CHAR, ch, 0);

System.Threading.Thread.Sleep(SleepTime);

}

public static int WM_CHAR = 0x102;

public static int WM_CLICK = 0x00F5;

[DllImport("User32.dll", EntryPoint = "SendMessage")]

public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);

[DllImport("user32.dll")]

public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter,

string lpszClass, string lpszWindow);

[DllImport("user32.dll", SetLastError = true)]

public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll")]

public static extern int AnyPopup();

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

[DllImport("user32.dll")]

public static extern int EnumThreadWindows(IntPtr dwThreadId, CallBack lpfn, int lParam);

[DllImport("user32.dll")]

public static extern int EnumChildWindows(IntPtr hWndParent, CallBack lpfn, int lParam);

[DllImport("user32.dll", CharSet = CharSet.Ansi)]

public static extern IntPtr PostMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

[DllImport("user32.dll", CharSet = CharSet.Ansi)]

public static extern IntPtr SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);

[DllImport("user32.dll", CharSet = CharSet.Unicode)]

public static extern IntPtr SendMessageA(IntPtr hwnd, int wMsg, int wParam, int lParam);

[DllImport("user32.dll", CharSet = CharSet.Auto)]

static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]

public static extern int GetWindowTextLength(IntPtr hWnd);

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]

public static extern IntPtr GetParent(IntPtr hWnd);

public delegate bool CallBack(IntPtr hwnd, int lParam);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值