【发布时间】:2015-12-02 09:58:27
【问题描述】:
我正在做一个小型私人项目,一个可以让我控制何时关闭我的电脑的程序(我已经知道那里有很多工具,但我仍然想对其进行编程)
到目前为止,我一直在命令菜单中使用命令行: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");
}
提前感谢所有帮助。
【问题讨论】:
-
为什么不直接运行关机命令而不写一个批处理文件并运行它?
-
您是否将您的 C++ 程序称为“shutdown.exe”?如果是这样,那是你的问题。
标签: c++ windows batch-file shutdown