某应用程序窗口,该窗口中有一个“文本框”,还有一个“按钮”,怎么样编程实现自动向“文本框”中自动输入信息,自动点击“按钮”提交信息。
当前条件:已知该窗口句柄。
问题1:C#编程怎么样找到“文本框”控件,并向其中输入信息呢?
当前条件:已知该窗口句柄。
问题1:C#编程怎么样找到“文本框”控件,并向其中输入信息呢?
问题2:C#编程怎么样找到“按钮”控件,并实现点击操作呢?
解决方案:30分
问题1:C#编程怎么样找到“文本框”控件,并向其中输入信息呢?
FindWindow找到最顶层的窗口
FindWindowEx找到子窗口(你需要多次调用)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500(v=vs.85).aspx
注意_In_opt_ HWND hwndChildAfter这个参数,它是关键
假如文本框不是主窗口的子窗口,那么重复这个过程,直到找到文本框。
问题2:C#编程怎么样找到“按钮”控件,并实现点击操作呢?
一样的过程。点击就是发送wm_click消息。
假如你知道这两个控件的ID,也可以用GetDlgItem直接得到句柄。
至于控件的层次关系和ID,可以用SPY++了解。
解决方案:10分
除通过窗口句柄外,还可用按键精灵,
解决方案:50分
[DllImport(“user32.dll”, EntryPoint=”SendMessageA”)]
private static extern int SendMessage (IntPtr hwnd, int wMsg, IntPtr wParam, string lParam);
[DllImport(“user32.dll”, EntryPoint=”SendMessageA”)]
private static extern int SendMessage (IntPtr hwnd, int wMsg, IntPtr wParam, ref Rectangle lParam);
private static extern int SendMessage (IntPtr hwnd, int wMsg, IntPtr wParam, string lParam);
[DllImport(“user32.dll”, EntryPoint=”SendMessageA”)]
private static extern int SendMessage (IntPtr hwnd, int wMsg, IntPtr wParam, ref Rectangle lParam);
//调用:
string s = “test”;
SendMessage(this.textBox1.Handle, WM_SETTEXT, IntPtr.Zero, s);
解决方案:10分
不需要 调用api假如 本人记得没错 winform里自带 SendMsg什么的方法