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

时间:2013-03-20 22:17:54

标签: c# windows windows-services

我正在写一个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的控制台?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

服务可以使用GUI功能和/或创建控制台。 Windows会根据需要创建虚拟显示表面以进行绘制。 (显然,这个虚拟表面不能与用户交互。)