当前位置:网站首页>Qt:小的任务管理器(task)
Qt:小的任务管理器(task)
2022-08-04 09:21:00 【@布响丸辣】
1.widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <windows.h>
#include <tlhelp32.h>
#include <QTableWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
public:
void showProcess();
private slots:
void on_pushButton_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
2.widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->tableWidget->setSelectionMode(QTableWidget::SingleSelection);
ui->tableWidget->setSelectionBehavior(QTableWidget::SelectRows);
showProcess();
}
Widget::~Widget()
{
delete ui;
}
void Widget::showProcess()
{
//获取进程信息的链表
HANDLE hsnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hsnapShot == INVALID_HANDLE_VALUE)return;
//获取链表的头
PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32);
BOOL bFlag = Process32First(hsnapShot,&pe);
QString str;
int i = 0;
while(bFlag)
{
str = QString::fromWCharArray(pe.szExeFile);
ui->tableWidget->setItem(i,0,new QTableWidgetItem(str));
str = QString::number(pe.th32ProcessID);
ui->tableWidget->setItem(i,1,new QTableWidgetItem(str));
str = QString::number(pe.cntThreads);
ui->tableWidget->setItem(i,2,new QTableWidgetItem(str));
//遍历链表
bFlag = Process32Next(hsnapShot,&pe);
i++;
}
}
void Widget::on_pushButton_clicked()
{
//获取当前选择项 id
QList<QTableWidgetItem*> lstitem = ui->tableWidget->selectedItems();
QTableWidgetItem* pItem = lstitem.front();
//获取选中行
int nrow = ui->tableWidget->row(pItem);
lstitem.pop_front();
pItem = lstitem.front();
lstitem.pop_front();
QString strid = pItem->text();
if(strid.isEmpty())return;
//获取句柄
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE,0,strid.toInt());
//杀死进程
if(hProcess)
{
TerminateProcess(hProcess,-1);
ui->tableWidget->removeRow(nrow);
}
}
3.
4.输出:
边栏推荐
猜你喜欢
ps抠图怎么抠出来,自学ps软件photoshop2022,ps怎么抠出想要的部分-笔记记录
注意力机制
Shell编程的条件语句
No module named 'flask_misaka' has been resolved [BUG solution]
2022年化工自动化控制仪表考试模拟100题及模拟考试
路由/三层交换机DHCP下发地址详解【华为eNSP】
并发编程之生产者和消费者问题
cannot import name ‘import_string‘ from ‘werkzeug‘【bug解决】
leetcode二叉树系列(二叉搜索树篇)
cannot import name 'import_string' from 'werkzeug' [bug solution]
随机推荐
【C补充】指向指针或函数的指针
架构设计杂谈
Fiddler(二)-手机抓包502错误解决方法
速速脱单诀窍
【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
TiCDC同步延迟问题处理
Oracle怎么获取当前库或者同一台服务器上某几个库的数据总行数?
Detailed explanation of telnet remote login aaa mode [Huawei eNSP]
recursive thinking
Detailed explanation of MSTP protocol configuration on Layer 3 switches [Huawei eNSP experiment]
思想茶叶蛋 (Jul 31,2022)| 元宇宙(Metaverse)下了一枚什么样的蛋
《福格行为模型》:如何养成好习惯?
MindSpore:【mindinsight】【Profiler】用execution_time推导出来的训练耗时远小于真实的耗时
罗克韦尔AB PLC RSLogix5000中定时器指令使用方法介绍
Detailed Explanation of Addresses Delivered by DHCP on Routing/Layer 3 Switches [Huawei eNSP]
ansible部署脚本--亲测可用无坑
DOM简述
How to restore the Youxuan database with only data files
TiDB升级与案例分享(TiDB v4.0.1 → v5.4.1)
抬升市场投资情绪,若羽臣是否还需“自身硬”?