C#如何在外部程序的密码框内自动输入密码 如题,我已经实现了C#自动调用外部的EXE程序,通过句柄,也实现了按钮的自动点击。可是,文本框不像按钮那样,可以通过名称找句柄。请问怎样才可以实现外部程序的密码框文本的自动输入呢?望高手指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取这个窗口的句柄,如果这个密码输入框是焦点,就直接用发送消息给这个窗口。System.Windows.Forms.SendKeys.Send( "要发送的键 ") HWND hWnd = ::FindWindow( "TFormMain ", "Window name "); //查找目标窗口句柄 HWND eWnd = ::FindWindowEx(hWnd,NULL, "TEdit ", " "); //查找目标窗口的Edit控件句柄 ::SendMessage(eWnd,WM_SETTEXT,0,(LPARAM)IP.GetBuffer(IP.GetLength())); //向目标的Edit控件发送文本 ::PostMessage(hwnd,WM_KEYDOWN,VK_RETURN,0);//向目标的Edit控件发送回车键消息! 根据SPY++中取得的类名(或标题名)及层次关系[DllImport("user32.dll", EntryPoint = "FindWindow")]private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll")]static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);private void button1_Click(object sender, EventArgs e){ IntPtr hWnd1 = FindWindow(null, "主窗口标题"); SetForegroundWindow(hWnd1); IntPtr hWnd2 = FindWindowEx(hWnd1, IntPtr.Zero, null, "控件文本"); IntPtr hWnd3 = FindWindowEx(hWnd1, IntPtr.Zero, "控件类名", null); } byte[]转换成int。SOS 关于反射的问题:Type.InvokeMember如何获取在父类的属性 VC.NET小问题,关于String和cli::interior_ptr<System::Char>的转换 DataGrid的改动如何更新到本地数据集 为什么我这样添加纪录会没有反应?知道的,请过来拿分!!!! C# 获取当前窗口的句柄 winform2.0中打印的问题 问一个初级的类型转换问题 问一个连接sql数据库的问题 如何让自己的程序像网际快车那样添加到系统的右键菜单上? 索引超出范围?必须为非负值并小于集合大小 线程中使用MSComm
System.Windows.Forms.SendKeys.Send( "要发送的键 ")
HWND eWnd = ::FindWindowEx(hWnd,NULL, "TEdit ", " "); //查找目标窗口的Edit控件句柄
::SendMessage(eWnd,WM_SETTEXT,0,(LPARAM)IP.GetBuffer(IP.GetLength())); //向目标的Edit控件发送文本
::PostMessage(hwnd,WM_KEYDOWN,VK_RETURN,0);//向目标的Edit控件发送回车键消息!
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);private void button1_Click(object sender, EventArgs e)
{
IntPtr hWnd1 = FindWindow(null, "主窗口标题");
SetForegroundWindow(hWnd1);
IntPtr hWnd2 = FindWindowEx(hWnd1, IntPtr.Zero, null, "控件文本");
IntPtr hWnd3 = FindWindowEx(hWnd1, IntPtr.Zero, "控件类名", null);
}