我想编写一个程序在N
秒钟内closures窗口。 我知道closures窗口最简单的方法是调用system()
shutdown -s -t XXXX
XXXX是给定的时间。 但是system()
只接受string作为参数。 如何在7200由用户input的情况下调用system("shutdown -s -t 7200")
?
我会使用InitiateSystemShutdown
。 您可以使用ExitWindows
或ExitWindowsEx
,但是这两者都不能直接支持原始问题中的延迟问题,所以您必须添加代码来执行延迟(例如,使用SetTimer
)。 这当然是可能的,但是如果不做任何额外的工作,就会招致额外的工作。
如果你坚持使用system
,你可以使用sprintf
(或类似的东西)来创建你传递给system
的字符串:
char buffer[256]; sprintf(buffer, "shutdown -s -t %d", seconds); system(buffer);
看看scanf()
和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);