我可以在Windows服务中运行另一个命令提示符/GUI进程吗?

本文关键字:GUI 进程 命令提示符 另一个 Windows 服务 运行 我可以 | 更新日期: 2023-09-27 18:04:53

我正在写一个windows服务,偶尔需要更新系统的IP地址,它会调用ipconfig/renew来完成它。代码看起来像这样

            Process ipconfigProcess = new Process();                
            ipconfigProcess.StartInfo.FileName = "ipconfig";
            ipconfigProcess.StartInfo.Arguments = " /renew";
            ipconfigProcess.StartInfo.UseShellExecute = false;
            ipconfigProcess.StartInfo.RedirectStandardOutput = true;
            ipconfigProcess.Start();
            strOutput = compiler.StandardOutput.ReadToEnd();
            ipconfigProcess.WaitForExit();

我想一个windows服务是不允许显示窗口/对话框的。所以我的问题是更新ip是否会在windows服务中出现问题,因为它可能会或可能不会显示控制台来运行ipconfig ?

我可以在Windows服务中运行另一个命令提示符/GUI进程吗?

我认为你要面对的唯一问题是权限-你应该没有问题运行这样一个进程(只要你不想与任何类型的UI交互),但你的windows服务需要作为一个帐户运行,将能够产生一个进程和执行ipconfig

这并不需要cmd.exe的实例。许多命令行应用程序都以这种方式使用。

服务可以使用GUI函数和/或创建控制台。Windows创建一个虚拟的显示表面,以便在必要时绘制。(显然,这个虚拟表面不能与用户交互。)