编写一个小型的C程序,在input的时间内closures窗口

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

 shutdown -s -t XXXX 

XXXX是给定的时间。 但是system()只接受string作为参数。 如何在7200由用户input的情况下调用system("shutdown -s -t 7200")

我会使用InitiateSystemShutdown 。 您可以使用ExitWindowsExitWindowsEx ,但是这两者都不能直接支持原始问题中的延迟问题,所以您必须添加代码来执行延迟(例如,使用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);