我正在開發一個小型私人項目,一個讓我控制什麼時候關閉PC的程序(我已經知道有很多工具在那裏,但我仍然想編程它)C/C++:創建和執行批處理
截至目前爲止,我一直在命令菜單中使用命令行:shutdown -s -t [x](x表示剩下的秒數)。
現在,我的程序應該自己計算剩餘秒數,寫入批處理文件&執行批處理文件。
我已經得到了它的所有工作,除了它應該執行批處理的部分。
它只是打開一個命令窗口,批處理的行顯示在一個無限循環(沒有實際執行該行,只是打印它)。
即使我只是創建批處理文件並使用我的鼠標在文件夾中執行它,它仍然不會執行命令行,只是在無限循環中顯示它。
-
void create_batch(double sec){
ofstream batch;
batch.open("shutdown.bat", ios::out);
batch << "shutdown -s -t "<<sec;
batch.close();
}
int main(){
time_t now;
struct tm shut_down;
double seconds;
int hh;
int mm;
cout << "Enter hour you want to shutdown<hh>\t: ";
cin >> hh;
cout << "Enter minute you want to shutdown<mm>\t: ";
cin >> mm;
time(&now); // get current time
shut_down = *localtime(&now); // set shutdown date to today
shut_down.tm_hour = hh;
shut_down.tm_min = mm;
seconds = difftime(mktime(&shut_down), now);
create_batch(seconds);
system("shutdown.bat");
}
感謝提前所有幫助。
爲什麼不直接運行shutdown命令而不寫一個批處理文件並運行它? –
你打電話給你的C++程序「shutdown.exe」嗎?如果是這樣,那就是你的問題。 –