我正在写一个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的控制台?
答案 0 :(得分:1)
我认为你要面对的唯一问题是权限问题 - 运行这样的流程应该没有问题(只要你不想与任何类型的用户界面进行交互),但是你的窗口服务需要作为一个能够生成进程并执行ipconfig的帐户运行。
答案 1 :(得分:0)
这不需要cmd.exe的实例。许多命令行应用程序都以这种方式使用。
答案 2 :(得分:-1)
服务可以使用GUI功能和/或创建控制台。 Windows会根据需要创建虚拟显示表面以进行绘制。 (显然,这个虚拟表面不能与用户交互。)