QQ自动聊天工具中的SendMessage是什么意思,里面的0x101 0x102怎么去得来
一段自动发送QQ聊天信息的代码
public void sendMessage()
{
IntPtr ip = IntPtr.Zero;
if (Regex.IsMatch(text_Intptr.Text.Trim(), @"^[a-fA-F0-9]+$"))
ip = (IntPtr)Convert.ToInt32(text_Intptr.Text.Trim(), 16);
else
{
ip = FindWindow("TXGuiFoundation", TextBox_Title.Text.Trim());
if (ip.ToInt32() == 0)
ip = GetIntPtr();
if (ip == IntPtr.Zero)
{
MessageBox.Show("请输入正确的标题");
return;
}
}
SetForegroundWindow(ip);
SetActiveWindow(ip);
var str = "";
var rtf = "";
richTextBox1.Invoke(new MethodInvoker(() => { str = richTextBox1.Text.Trim(); rtf = richTextBox1.Rtf.Trim(); }));
while (true)
{
if (ip.ToInt32() == GetForegroundWindow().ToInt32())
{
foreach (byte c in Encoding.Default.GetBytes(str))
{
SendMessage(ip.ToInt32(), 0x101, (int)c, 1);
SendMessage(ip.ToInt32(), 0x102, (int)c, 1);
}
SendKeys.SendWait("%s");
}
Thread.Sleep(sleep);
}
}
我就这两段代码不明白
SendMessage(ip.ToInt32(), 0x101, (int)c, 1);
SendMessage(ip.ToInt32(), 0x102, (int)c, 1);
他这里为向聊天输入框插入字符,
但是他这里判断没有先去得到句柄,而是用
0x101和0x102
那这两个是怎么得来的呢?
这两个表示的是什么呢?
为什么是两个,按道理输入框只有一个啊?
谢谢
[解决办法]
本帖最后由 bdmh 于 2013-01-16 14:52:45 编辑 消息值,网上查去,或者找本消息大全查
http://wenku.baidu.com/view/b031f004e87101f69e319572.html
[解决办法]
0x101:按下一个键
0x102:释放一个键
一个down一个up
[解决办法]
或者自己写代码,将发送的消息复制到剪切板中,然后粘贴到qq聊天窗口中
[解决办法]
windows里自定义的消息id
具体含义可以百度查一下
[解决办法]
获取聊天窗口的内容?这个倒没试过
[解决办法]
不过思路估计差不多,先是找到聊天窗口=》激活聊天窗口=》模拟按下CTRL+C,然后将剪切板中的内容粘贴出来就行
[解决办法]
sendkeys
keybd_event
sendmessage 都可以。
[解决办法]
你说的在程序中实现没办法的,跟msn等不一样,qq估计是为了垄断,根本就没有公开api,所以现在qq都是通过这种模拟键盘来实现的。
[解决办法]
sendkeys就算了 不能后台操作
sendmessage比较好。能后台操作
最小化后都能操作