C#qq模拟聊天机器人怎么写? 20

用C#模拟按键信息并发送,这样写没有效果,谁能帮我改一改?谢谢了publicpartialclassForm1:Form{[DllImport("User32.DLL")... 用C#模拟按键信息并发送,这样写没有效果,谁能帮我改一改?谢谢了
public partial class Form1 : Form
{

[DllImport("User32.DLL")]
public static extern int SendMessage(IntPtr hWnd,
uint Msg, int wParam, string lParam);
[DllImport("User32.DLL")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent,
IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
public const uint EM_REPLACESEL = 0x30A44;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{
Process vProcess = System.Diagnostics.Process.Start("IEXPLORE.EXE", "tencent://message/?uin=84564115");
//System.Diagnostics.Process.Start("IEXPLORE.EXE", "tencent://message/?uin=84564115");
vProcess.Refresh();
IntPtr vHandle = FindWindowEx(vProcess.MainWindowHandle,
IntPtr.Zero, "RichTextBox", null);
SendMessage(vHandle, EM_REPLACESEL, 0, "");
SendKeys.Send("{a 10}");
}
}
展开
 我来答
cmbird
2008-09-10 · TA获得超过576个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:303万
展开全部
这个程序有几个问题:
1、QQ聊天窗口的父窗口不是IE,而是桌面。所以IntPtr vHandle = FindWindowEx(vProcess.MainWindowHandle,
IntPtr.Zero, "RichTextBox", null); vHandle肯定返回0,找不到。
2、QQ聊天窗口的文字输入窗口的窗口类名是RichEdit20A,它所处的窗口层次是这样的:桌面/"#32770"“与 XXX 聊天中”/"#32770"""/"AfxWnd42"""(第二个AfxWnd42子窗口)/"RichEdit20A", ""
3、应向QQ聊天窗口的文字输入窗口发送EM_SETTEXTEX消息,来修改其中的内容。
4、在模拟发送键之前,应先调用SetForegroundWindow让QQ聊天窗口的文字输入窗口成为前景窗口。
5、可以模拟Alt+S键实现发送功能:
SendKeys.Send("%S");

逐步解决这些问题,你的程序就可以正常工作了。你会成功的。
mr19830707
2008-09-10 · TA获得超过209个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:198万
展开全部
我也期待答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式