在自己的应用程序中运行命令提示符命令



是否有办法从C应用程序中运行命令提示符命令?我想使用wmic diskdrive get serialnumber命令检查硬盘的制造商序列号。

有许多函数允许你从C中调用外部程序,其中一些是"标准的",有些是特定于Windows的。

但是在你的场景中,我建议你使用Windows提供的WMI API,你可以在stackoverflow上找到这样的例子:

如何使用C应用程序从WMI获取数据?如何在c

中运行wmi查询

我没有提供例子,而是链接到SO上已有的答案,因为我认为复制已经存在的东西是没有意义的。

您可以尝试使用popen:-

#include<stdio.h>
#include<string.h>
int main()
{
   char c;
   FILE *file = popen("wmic diskdrive get serialnumber", "r");
   if (file) {
     while ((c = getc(file)) != EOF)
        putchar(c);
    fclose(file);
   }
   return 0;
}

由于这是一个文件对象,现在您可以很容易地将其写入文件,如果您愿意,也可以随意检索它。

可以。然而,这样做被认为是不好的做法,因为它使你的应用程序不必要地依赖于平台,并产生开销。

一样
#include <stdio.h>
#include <string.h>
void main ()
{
    system("wmic diskdrive get serialnumber");
}

点击这里阅读更多内容关于输出(引用自上面的链接):

错误返回值为-1否则命令。

您也可以使用ReadConsoleOutputCharacter函数(链接到msdn入站参考)来读取控制台输出。

在您尝试使用命令提示符获取这些数据之前,请考虑使用API或任何其他方法来检索数据,因为通过调用命令提示符,您将为应用程序增加不必要的开销。

最新更新