3

N我想编写一个程序以在几秒钟内关闭窗口。system()我知道关闭窗口的最简单方法是调用

shutdown -s -t XXXX

其中 XXXX 是给定时间。但是system()只接受字符串作为参数。如何调用system("shutdown -s -t 7200")用户输入的7200?

4

2 回答 2

1

我会InitiateSystemShutdown改用。您可以使用ExitWindowsor ExitWindowsEx,但它们都不直接支持原始问题中询问的延迟,因此您必须添加代码来执行延迟(例如,使用SetTimer)。这当然是可能的,但会带来额外的工作而没有完成任何额外的回报。

如果您坚持使用system,您可以使用sprintf(或类似的东西)来创建您传递给的字符串system

char buffer[256];

sprintf(buffer, "shutdown -s -t %d", seconds);
system(buffer);
于 2012-04-03T20:14:01.600 回答
1

看看scanf()and sprintf(),例如:

#define MAX_LENGTH 50
/* ... */
int shutdownTime;
char shutdownCall[MAX_LENGTH];

scanf("%d", &shutdownTime);
if (shutdownTime < 0) 
    return NEGATIVE_TIME_ERROR;
sprintf(shutdownCall, "shutdown -s -t %d", shutdownTime);
system(shutdownCall);
于 2012-04-03T20:17:27.403 回答