我制作了一个程序,它会在设定的时间后关闭 PC。用户使用 2 个旋转框输入时间(一个用于小时,另一个用于分钟),然后我将其转换为毫秒:
ms = (ui->hBox->text().toInt() * 3600 + ui->mBox->text().toInt() * 60) * 1000;
然后它调用 timer() 函数
void Dialog::timer()
{
QTimer *time = new QTimer(this);
time->setInterval(ms);
time->setSingleShot(1);
connect(time, SIGNAL(timeout()), this, SLOT(shutdown()));
time->start();
}
然后信号 timeout() 调用 shutdown() 插槽/函数,检查用户是否要关闭、重新启动或注销 PC,然后执行适当的命令。
void Dialog::shutdown()
{
if(ui->radioButton->isChecked())
system("shutdown -s -t 0");
else if(ui->radioButton_2->isChecked())
system("shutdown -r -t 0");
else if(ui->radioButton_3->isChecked())
system("shutdown -l -t 0");
}
(也尝试过“shutdown -s -f”,甚至只有“shutdown -s”,似乎没有任何帮助解决问题)
我只想在我的 Windows PC 上运行这个应用程序,所以使用 system() 也没有问题。
当我从 Qt Creator 运行上面的应用程序时,它可以完美执行,但是当我部署它时,放置所有需要的 .dll 文件,程序等待计时器,然后打开空控制台,然后启动程序的新实例,PC 永远不会关闭或重新启动。那么我做错了什么?我错过了一些 .dll 文件还是什么?