`
muyu
  • 浏览: 222721 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让被迫下线的QQ重新自动登录!

    博客分类:
  • .net
阅读更多

公司的电脑有时因为运行着重要程序,整夜不关机,想挂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 Files\Tencent\QQ\Bin\QQ.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下线”项目,从标题和描述来看,主要是利用易语言编写的一个程序,其功能可能是发送某种指令或消息,使得目标QQ账号被迫下线,这在编程领域被称为一种恶作剧或黑客行为。 首先,我们要明确,这种...

    Linux环境下Web_Portal计费网关自动登录_下线的研究.pdf

    【Linux环境下Web_Portal计费网关自动登录_下线的研究】 在现代的网络环境中,尤其是在校园网络中,网络管理的高效性和便利性至关重要。Web/Portal计费网关是一种无需客户端软件的认证机制,它简化了用户接入网络的...

    迅雷被挤下线可以自动重新登录的程序

    为了解决这个问题,我们可以创建一个自动重新登录的程序,确保迅雷在出现此类状况时能够迅速恢复下载功能。 这个程序的核心是监控迅雷的在线状态,并在检测到掉线事件时执行重新登录操作。具体实现可能涉及以下几个...

    vbs写的让qq下线,运行后你的qq就会关闭

    用vb脚本语言写的,代码只有6行。程序可改动,把后缀改成.txt就可看代码。这个程序运行后可让你想要的任何程序关闭。qq聊天时,可逗你朋友,源码作用是关闭qq

    QQ被盗号后自动重新登录工具

    QQ被盗后密码未被修改前可以用这个工具在被对方登录踢下线的时候自动登录。需要.net framework 2.0,一般windows都可以运行。注意,这个工具不能帮你找回密码,只能是你QQ被盗,密码对方修改不了的情况下用于踢对方...

    宽带QQ批量自动登录器 V4.2.rar

    软件简介:    宽带QQ批量自动登录器是一款比较人性化、自动化、实用化全能的控制... 优化QQ批量挂机功能,修复自动被提下线问题; 修复无法下拉列表问题,完善个别细节; 更新几个油箱登陆项目;

    在线聊天室。实现了同一个帐号同一时间在不同地点只能一个人登录,如果一个人使用则另一个人被迫下线

    本项目实现了一个特定的功能:确保同一账号在同一时间只能在一个地方登录,一旦有另一人在不同地点尝试登录,已登录的用户将被强制下线。这种设计模式被称为“会话独占”,它在许多在线服务中,特别是安全性要求较高...

    Android单点登录,互踢下线代码实现

    如果用户已经在本设备上登录,那么发送一个下线请求到服务器,删除本地的登录状态,并通知用户需要重新登录。同时,新设备上的登录请求也会被拒绝,提示用户账号已在其他设备上登录。 5. **通知用户**:可以使用...

    qq自动关机

    QQ自动关机是一款实用工具,主要针对QQ用户设计,它能够在QQ下线后自动执行关机操作,确保用户的计算机在不使用时能够自动关闭,从而节约能源并保护设备。这款软件并非恶意程序或流氓软件,用户可以安心下载使用。其...

    好用的QQ自动登陆器

    总的来说,QQ自动登陆器作为一种提高效率的工具,通过自动化处理QQ登录过程,为用户提供便利。在享受这种便利的同时,用户也需要了解并采取适当的措施保护自己的账号安全,确保使用过程中的隐私不被侵犯。在选择和...

    C#小范例(强制QQ下线)

    ### C#小范例(强制QQ下线) #### 概述 本文将详细介绍一个简单的C#程序示例,该程序可以实现强制结束指定进程的功能,本例中为QQ进程。通过学习这一示例,读者不仅能了解如何在C#中操作进程,还能掌握如何通过...

    仿制QQ下线功能.zip

    在Android应用开发中,"仿制QQ下线功能.zip"是一个示例项目,它演示了如何实现一个类似于QQ应用的强制下线功能。这个功能的关键在于利用Android系统的BroadcastReceiver组件来监听特定的事件,比如用户点击了“强制...

    易语言源码易语言恶搞QQ下线源码.rar

    易语言源码易语言恶搞QQ下线源码.rar 易语言源码易语言恶搞QQ下线源码.rar 易语言源码易语言恶搞QQ下线源码.rar 易语言源码易语言恶搞QQ下线源码.rar 易语言源码易语言恶搞QQ下线源码.rar 易语言源码易语言恶搞...

    Android中使用广播接收者组件实现简单强迫用户下线功能

    强制用户下线的功能通常应用于网络服务或社交应用,当服务器检测到用户的账号异常或者登录状态过期时,会发送一个通知到客户端,客户端接收到这个通知后立即执行下线操作。以下是实现这一功能的步骤: 1. **创建...

    qq手机令牌

    QQ安全中心是腾讯公司推出的QQ帐号保护软件...2.QQ登录查询:最近7天登录足迹,一查便知。 3.帐号锁:开关自如,全面掌控QQ登录。每次锁定最长15天,到期后自动解锁。 4. 游戏锁:下线锁号,装备无忧。每次锁定最长7天

    Android通过广播实现强制下线功能

    在Android应用开发中,有时需要实现一种机制,当用户在其他设备或平台上登录时,当前设备上的应用会接收到通知并自动强制用户下线。这种功能可以确保账号安全,防止同一账号在多个设备上同时在线可能引发的问题。...

    Android精美布局实现QQ登入界面同时实现强制QQ下线功能源码.rar

    Android精美布局实现QQ登入界面同时实现强制QQ下线功能源码

    Java后台实现前台下线通知推送

    2. **事件驱动**:为了实时获取到用户下线的事件,我们可以实现HttpSessionListener接口,重写sessionCreated()和sessionDestroyed()方法。当会话被创建或销毁时,这些方法会被调用,从而我们可以在此触发通知推送。...

    迅雷VIP账号自动登录

    然而,当多个用户共享一个VIP账号时,由于每次登录都需要验证身份,特别是在高并发的情况下,可能会导致其他人无法正常登录,即所谓的“被踢下线”。 防踢插件的工作原理通常是通过模拟登录和保持会话的方式实现的...

    秘书QQ机器人 v3.3.1510.22

    秘书QQ机器人是一款可以自动回复和管理的QQ机器人软件。特色:采用最新2013beta2版协议,很少出验证码,很少被...实现了QQ登录、注销、收发QQ消息、收发QQ群消息等功能、微信互动 支持web接口、插件扩展、提供DLL调用

Global site tag (gtag.js) - Google Analytics