我用API自动登录QQ时候 出现一点小问题,看你会不会.

qq183670101 2010-05-29 12:48:39

我想再点击按钮时候 自动登录QQ 基本实现 就是一问题
private void button3_Click(object sender, EventArgs e)
{
Process.Start(@"F:\聊天工具\QQ\QQ2010\QQ2010\Bin\QQ.exe");
//Thread.Sleep(5000);

int k = FindWindow(null, "QQ2010");
string k16 = System.Convert.ToString(k, 16);
MessageBox.Show(k16.ToString(),"测试",MessageBoxButtons.OK );
红色字体这句话注释后 不成功 ; 不注释 达到目的 可是又出来对话框
IntPtr iptr = new IntPtr(k);
SetWindowPos(iptr);
System.Windows.Forms.SendKeys.Send("{ENTER}");


}



出来对话框 和没有实现 没有什么区别的 请问 我该怎么弄?
就是不弹出对话框 还能自动登录.高手指点 感谢
...全文
201 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuquan1987 2010-08-31
  • 打赏
  • 举报
回复
楼主的方法中少了个 就是在findwindow后应该还有个setforgroundwindow的方法。将你找到的窗体带到最前端。
yuquan1987 2010-08-31
  • 打赏
  • 举报
回复
楼主的方式是登录QQ的一个面。这样的方式我觉得有个缺点就是 在用sendkey,findwindow这些方法的时候,鼠标不能乱动。移动了就无法实现效果了。最近我也有登录QQ的需求。找了些资料,发现以前QQ是有接口的。最近却没有了。很是郁闷。
周公 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qq183670101 的回复:]

但是 把QQ改为金山毒霸时候 一切正常 真的郁闷 .
[/Quote]
如果使用别的软件正常,那就有可能是QQ使用了一些特殊保护措施。
deknight 2010-05-29
  • 打赏
  • 举报
回复
???
int k = FindWindow(null, "QQ2010");这样也行?
你findwindow怎么写的?
qq183670101 2010-05-29
  • 打赏
  • 举报
回复
自己顶
qq183670101 2010-05-29
  • 打赏
  • 举报
回复
但是 把QQ改为金山毒霸时候 一切正常 真的郁闷 .
deknight 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qq183670101 的回复:]
IntPtr iptr = new IntPtr(k);
这就是包焦点给窗体 在QQ上面 按确定键就可以的.
我和4楼想法一样,那我还是多试试其他软件 才知道的.
[/Quote]
哦,没看到 IntPtr iptr = new IntPtr(k);
.....
事理 2010-05-29
  • 打赏
  • 举报
回复
private void button3_Click(object sender, EventArgs e)
{
Process.Start(@"F:\聊天工具\QQ\QQ2010\QQ2010\Bin\QQ.exe");
//Thread.Sleep(5000);

int k = FindWindow(null, "QQ2010");
string k16 = System.Convert.ToString(k, 16);
Thread.Sleep(1000);
红色字体这句话注释后 不成功 ; 不注释 达到目的 可是又出来对话框
IntPtr iptr = new IntPtr(k);
SetWindowPos(iptr);
System.Windows.Forms.SendKeys.Send("{ENTER}");


}


不知道行不行,时间可以再久点
醒子宇 2010-05-29
  • 打赏
  • 举报
回复
tx 吓唬吓唬lz的``
qq183670101 2010-05-29
  • 打赏
  • 举报
回复
但是我有疑问 就是 弹出对话框时候 不一定用那个 MessageBox.Show("这里随便写都已的");
只要有MessageBox.Show 就可以的 腾讯要是这样做有什么意义.
qq183670101 2010-05-29
  • 打赏
  • 举报
回复
IntPtr iptr = new IntPtr(k);
这就是包焦点给窗体 在QQ上面 按确定键就可以的.
我和4楼想法一样,那我还是多试试其他软件 才知道的.
geniusatm4 2010-05-29
  • 打赏
  • 举报
回复
focus了吗。。。
mayonglong 2010-05-29
  • 打赏
  • 举报
回复
不懂lz怎么调用的,学习·~

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧