我是靠谱客的博主 悲凉荔枝,最近开发中收集的这篇文章主要介绍让被迫下线的QQ重新自动登录!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

公司的电脑有时因为运行着重要程序,整夜不关机,想挂QQ。但是,下班回到家,一旦登录QQ,公司电脑挂的QQ就自动退出了。晚上睡觉,关掉电脑,公司电脑却不能再挂机了。

 

为此,我用C#写了一个控制台程序,凌晨0点(我通常晚上11点睡觉)检测一下QQ,看它是否收到了下线通知。一旦收到了,就先退出QQ程序,然后再次启动QQ------注意:公司电脑QQ要设成“记住密码”、“启动QQ时自动登录”。

 

检测QQ

---------

刚开始,我用类Process提供的方法,有两个问题无法解决:

1.它无法判断QQ是否正常运行,或是收到了下线通知;

2.使用它提供的CloseMainWindow方法,无法退出QQ。正如MSDN对该方法的评价------“调用 CloseMainWindow 会向主窗口发送关闭请求,在一个格式良好的应用程序中,该请求会关闭子窗口并撤消此应用程序所有正在运行的消息循环。通过调用 CloseMainWindow 发出的退出进程的请求不强制应用程序退出。应用程序可以在退出前请求用户验证,也可以拒绝退出。”

 

按照MSDN的说明,万不得已可以使用kill方法,只是QQ进程被关掉了,任务栏的企鹅图标还存在。在QQ再次登录时,任务栏就会多出一个。也就是说,每执行一次kill,就会产生一个。

 

windows API

----------------

 在网上查到《Kill any application with system menu using C# 》,用c#调用windows API,借助visual studio自带的 Microsoft Spy++ 来获取QQ程序窗口的类名和窗口名 作为 API的两个参数,就可以了。

 

特性DllImport需要引入 using System.Runtime.InteropServices;

 

代码

-----

static void Main(string[] args)
        {
            Process[] myProcess = Process.GetProcesses();
            if (isOffLine())
            {
                closeQQ();

                Thread.Sleep(2000);

                startQQ();
            }
        }

        static void closeQQ()
        {
            int iHandle = Win32.FindWindow("TXGuiFoundation", "QQ2010");//改成你电脑上的实际检测结果
            int j = Win32.SendMessage(iHandle, Win32.WM_SYSCOMMAND,
                Win32.SC_CLOSE, 0);
        }

        static void startQQ()
        {
            Process qq = new Process();
            qq.StartInfo.FileName = @"D:Program FilesTencentQQBinQQ.exe";//改成你电脑上QQ的实际地址
            qq.Start();
        }

        static bool isOffLine()
        {
            bool flag = false;
            int iHandle = Win32.FindWindow("TXGuiFoundation", "下线通知");
            if (iHandle > 0)
            {
                flag = true;
            }
            return flag;
        }

 

补充

---------

我用的QQ版本是昨天从官网刚下载的,其他版本的窗口名可能需要用 Microsoft Spy++ 检测一下。

最后

以上就是悲凉荔枝为你收集整理的让被迫下线的QQ重新自动登录!的全部内容,希望文章能够帮你解决让被迫下线的QQ重新自动登录!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部