主题:[讨论]C# 向另一程序的文本框内发消息(已知句柄)
nicky7174919
[专家分:0] 发布于 2010-05-28 12:00:00
两个c#应用程序,第一个程序上只有一个textbox控件
另一程序上有一Button按钮 和 textbox控件
在另一个程序的textbox控件内输入信息 点击Button按钮 将消息发送到第一个程序的textbox控件内。
回复列表 (共12个回复)
沙发
nicky7174919 [专家分:0] 发布于 2010-05-29 08:56:00
制作一个简单的程序,窗体上一个CLICK按钮!点击按就触发事件!
首先判断是否存在特定程序(该特定程序有一个密码文本框,一个“确定”和一个“取消”按钮),给密码框填入密码(获取密码框句柄,把密码传递给密码框),模拟点击“确定”按钮,实现自动登陆!
现在把代码发给大家,大家帮我看一下,我的值为什么无法传递给密码框。
声明部分:
[DllImport( "user32.dll ")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport( "user32.dll ")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport( "user32.dll ", CharSet = CharSet.Unicode)]
public static extern IntPtr PostMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport( "User32.dll ", CharSet = CharSet.Auto)]
public static extern bool SetWindowText(IntPtr hwnd, string lpString);
CLICK部分:
private void button1_Click(object sender, EventArgs e)
{
IntPtr hwnd_win;
IntPtr hwnd_button;
IntPtr hwnd_password;
hwnd_win = FindWindow(null, "输入口令 ");//窗口的名称,获取窗口句柄
hwnd_button = FindWindowEx(hwnd_win, new IntPtr(0), null, "确定(&O) ");//获取确定按钮的句柄
hwnd_password = FindWindowEx(hwnd_win, new IntPtr(0), "IRIS.password ", null);//获取密码框的句柄,通过SPY++获得 "IRIS.password "类名
SetWindowText(hwnd_password, "kjc0311 ");
const int BM_CLICK = 0x00F5;
Message msg = Message.Create(hwnd_button, BM_CLICK, new IntPtr(0), new IntPtr(0));
PostMessage(msg.HWnd, msg.Msg, msg.WParam, msg.LParam);
}
我知道应该出在SetWindowText(hwnd_password, "kjc0311 ");这句话上,请大家帮忙看看!
贴子来源飞诺网(http://bbs.firnow.com) 详细出处参考:http://bbs.firnow.com/dview2t71926.html
板凳
nicky7174919 [专家分:0] 发布于 2010-06-01 09:06:00
本问题已经解决,如果大家谁需要源代码的话,请顶贴留言,告知你的邮箱即可。谢谢!
3 楼
riyuetaiyangxing [专家分:0] 发布于 2010-07-25 16:06:00
我想看下你的源代码 我的邮箱是315130552@qq.com,谢谢
4 楼
tr0217 [专家分:730] 发布于 2010-08-02 21:01:00
我要邮箱tr0217@163.com。谢了
5 楼
速水铁1983 [专家分:0] 发布于 2010-09-02 23:55:00
我做过这个,在获取前先要用AttachThread() API来为两个进程进行连接
连接了以后就可以用setwindowtext和getwindowtext函数了
6 楼
ltm1209 [专家分:0] 发布于 2010-09-06 15:54:00
542412009@qq.com
8 楼
a542851743 [专家分:0] 发布于 2010-12-09 12:07:00
我要 我邮箱a542851743@126.com
9 楼
mgy0733 [专家分:0] 发布于 2010-12-12 10:17:00
楼主,请共享一下源码,我的邮箱mogaoyong@gmail.com
10 楼
ziqiandai [专家分:0] 发布于 2012-08-24 22:06:00
不知道该帖子是否可用了,我的邮箱是ziqiandai@sina.com,谢谢楼主了
我来回复