我製作了一個程序,可在設定的時間後關閉PC。 用戶使用2個旋轉框(一個用於小時,另一個用於分鐘), 然後我將其轉換爲毫秒進入時間:Qt關機()不適用於已部署的應用程序
ms = (ui->hBox->text().toInt() * 3600 + ui->mBox->text().toInt() * 60) * 1000;
然後它調用計時器()函數
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");
}
(也試過「關機-s -f」,甚至只有「關機-s」,似乎沒有任何幫助解決問題)
我想只有我的Windows PC上運行該應用程序,所以使用system()也不是問題。
當我從Qt Creator運行它時,上面的應用程序執行完美,但是當我部署它時,放置所有需要的.dll文件,程序等待計時器,然後打開空控制檯,然後啓動程序的新實例, PC從不關閉或重新啓動。 那麼我在做什麼錯了?我是否缺少一些.dll文件或其他內容?
你有沒有使用依賴學步車檢查任何缺少DLL? – 2013-05-07 11:29:25
是的,我做了,它報告我擁有了一切。我需要把qudows.dll的icudt49,icuin49,icuuc49,libEGL,libgcc_s_sjlj-1,libGLESv2,libstdC++ - 6,libwinpthread,Qt5Core,Qt5Gui,Qt5Widgets和platforms文件夾 – Svajs 2013-05-07 11:32:17