当前位置:网站首页>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.输出:

边栏推荐
猜你喜欢
![Detailed explanation of telnet remote login aaa mode [Huawei eNSP]](/img/cf/aaf3a0b794b1076423fc5b90ecc9f0.png)
Detailed explanation of telnet remote login aaa mode [Huawei eNSP]

Shell编程的条件语句

下午14:00面试,14:08低着头出来了 ,问的实在是太...

Since his 97, I roll but he...

使用ClickHouse分析COS的清单和访问日志

Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!

已解决No module named ‘flask_misaka‘【BUG解决】

I am 37 this year, and I was rushed by a big factory to...
![[Punctuality Atom STM32 Serial] Chapter 4 STM32 First Experience Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1](/img/99/928e86f8a61a905a899dd5d3880def.png)
[Punctuality Atom STM32 Serial] Chapter 4 STM32 First Experience Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1

注意力机制
随机推荐
今年37了,被大厂抢着要...
Quick tips for getting out of a single
VRRP+MSTP配置详解【华为eNSP实验】
速速脱单诀窍
递归思想
Wang Shuang's Assembly Language Chapter 4: The First Program
After four years of outsourcing, the autumn recruits finally landed
Explanation of spark operator
Detailed explanation of MSTP protocol configuration on Layer 3 switches [Huawei eNSP experiment]
Since his 97, I roll but he...
PD 源码分析- Checker: region 健康卫士
如何快速将Zabbix5.0升级至6.0?
[Punctuality Atom STM32 Serial] Chapter 2 STM32 Introduction Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1
低代码应用开发的五大好处
【COS 加码福利】COS 用户实践有奖征文,等你来投稿!
反序列化漏洞
他97年的,我既然卷不过他...
华为od项目
三层交换机配置MSTP协议详解【华为eNSP实验】
yuv420sp转jpg