#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// 设置表格
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
ui->tableWidget->setColumnWidth(0, 100);
ui->tableWidget->setColumnWidth(1, 200);
ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
//遍历 注册表下的启动项,这里我们将枚举注册表中的
//"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"子键下的键值项
if(ERROR_SUCCESS != RegOpenKeyExA(HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run\\",
0,
KEY_ALL_ACCESS,&mRunKey)){
qDebug() << "注册表打开失败";
return;
}
refreshTable();
}
void Widget::refreshTable(){
// 清空表格
int row = ui->tableWidget->rowCount();
for( int i = 0; i < row; i++){
ui->tableWidget->removeRow(0);
}
unsigned long i = 0;
char name[1024] = {0};
BYTE data[1024] = {0};
unsigned long nameLen = 1024;
unsigned long dataLen = 1024;//DWORD = unsigned long
// ui->tableWidget->
LSTATUS lRet;
while(true){
lRet = RegEnumValueA(mRunKey,i,name,&nameLen,nullptr,nullptr,data,&dataLen);
if(lRet == ERROR_NO_MORE_ITEMS)
break;
qDebug() << "i = " << i;
ui->tableWidget->insertRow(0);
ui->tableWidget->setItem(0,0,new QTableWidgetItem(name));
ui->tableWidget->setItem(0,1,new QTableWidgetItem((char*)data));
i++;
}
}
Widget::~Widget()
{
// 关闭注册表句柄
RegCloseKey(mRunKey);
delete ui;
}
void Widget::on_exitButton_clicked()
{
this->close();
}
void Widget::on_addButton_clicked()
{
mAddStart = new AddStart();
connect(mAddStart,&AddStart::addDone,this,[=](){
this->refreshTable();
});
mAddStart->show();
}
void Widget::on_delButton_clicked()
{
int row = this->ui->tableWidget->currentRow();
QString key = this->ui->tableWidget->item(row,0)->text();
LSTATUS lRet;
lRet = RegDeleteValueA(mRunKey,key.toStdString().c_str());
if(ERROR_SUCCESS != lRet){
qDebug() << "删除启动项失败";
return;
}
refreshTable();
}
Qt:Windows编程—Qt实现注册表启动项管理 示例代码
需积分: 46 139 浏览量
2018-12-09
22:37:17
上传
评论
收藏 7KB RAR 举报
重庆李四
- 粉丝: 1w+
- 资源: 32
最新资源
- 前端vue框架,后端ssm+springboot框架,网站开发.zip
- 基于springboot的快速开发框架.zip
- 基于springboot的分布式权限管理系统,易读易懂、界面简洁美观.zip
- 基于SpringBoot Mybatis-Plus TypeScript的微服务多租户SaaS管理快速开发框架 .zip
- 论文复现:QA-GNN: Reasoning with Language Models and Knowledge
- ipp(intel-oneAPI)下载地址.txt
- 基于spring-boot dubbox搭建的java分布式系统的前端管理.zip
- VLC+Qt demoVLC+Qt demo
- 海彪&龙梅子 - 寂寞的人伤心的歌 (DJ版) [mqms2].ogg
- 530springboot + vue 旅游管理系统.zip(可运行源码+数据库文件+文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈