ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++ 热键快速退出QQ(或其它程序)

2022-03-30 10:03:29  阅读:188  来源: 互联网

标签:QQ return 热键 c++ 编译 FALSE Ta hProcess


创作起因(废话,可以跳过)

因为疫情的缘故,我又不得不上了网课。
网课的内容相比学校课上的内容要简单的多(毕竟原来教我的是重点班老师,现在却是平行班老师给我们上课)
边听课,我就顺便跟铝硼铀在QQ上聊天(嘿嘿~~)
可是Ta的手速很糟糕,Ta母亲进房间的时候,Ta有时会来不及退出QQ,差点被发现......

为了有效避免以上问题,我就花了一节政治课的时间,写了下面这个小程序。

主程序

用法:Alt + K 快速关闭QQ主程序

/*
Author: Pevernow<3450354617@qq.com
Time: 2022.3.30
License: MIT
转载或者二创请保留这些注释 
*/


#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>

using namespace std;

bool KillProcess(DWORD ProcessId) {//通过ID杀死程序
	HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,ProcessId);
	if(hProcess==NULL)
		return FALSE;
	if(!TerminateProcess(hProcess,0))
		return FALSE;
	return TRUE;
}

bool KillQQ(){//尝试寻找QQ.exe并获取ID然后杀死
	HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if (hProcessSnap == FALSE ) {
		cout<<"CreateToolhelp32Snapshot error"<<endl;
		return -1;
	}
	PROCESSENTRY32 pe32;
	pe32.dwSize = sizeof(PROCESSENTRY32);

	BOOL bRet = Process32First(hProcessSnap, &pe32);
	while (bRet) {

		if(strcmp(pe32.szExeFile,"QQ.exe")==0){//也可以替换成别的进程名
		    KillProcess(pe32.th32ProcessID);
	    }
		bRet = Process32Next(hProcessSnap, &pe32);
	}
	::CloseHandle(hProcessSnap);
	return 0;
}

int main() {	
    if (0 == RegisterHotKey(NULL, 1, MOD_ALT, 0x4B)) {//注册热键
        cout << "RegisterHotKey error : " << GetLastError() << endl;
        return 0;
    }
    MSG msg = { 0 };
    while (GetMessage(&msg, NULL, 0, 0)){//轮询接收消息,放心,因为是事件触发,几乎不会占用CPU时间

        switch (msg.message) {
        case WM_HOTKEY:
        {
            if (1 == msg.wParam) {
            	KillQQ();
            }

            break;
        }
            
        default:
            break;
        }

    }
	return 0;
}

编译建议

我用Dev-C++编译的,静态链接了stdc++和pthread(我明明没用pthread,不知道为什么提示要用这个库,求大神解答一下)
这样就能打包出单文件的可执行程序(大小在3M左右)

同时,为了防止被别人发现,我在Dev-C++的编译选项-连接器中勾选了“不产生控制台窗口”

写在最后

新人学生博主,求支持~~

标签:QQ,return,热键,c++,编译,FALSE,Ta,hProcess
来源: https://www.cnblogs.com/pevernow/p/16075543.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有