通过C#显示“设备和打印机”窗口?

时间:2013-06-27 09:16:31

标签: c# windows

使用C#,如何显示“设备和打印机”窗口,如此屏幕截图所示?

enter image description here

2 个答案:

答案 0 :(得分:8)

应用程序可以通过执行control.exe in a new process以编程方式打开控制面板。 MSDN states,调用控制面板项的首选方法是使用其规范名称,该名称在不同版本中是非本地化且稳定的。从Windows Vista开始,每个控制面板项都有一个规范名称; MSDN为标准Windows控制面板项提供a list。此列表表明设备和打印机项的规范名称为Microsoft.DevicesAndPrinters

通过使用规范名称作为参数control.exe)调用/name <canonical name or GUID>,可以在新流程中打开控制面板项目:

//note: assumes (using System.Diagnostics and System.IO)

string controlpath = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.System),
    "control.exe"); // path to %windir%\system32\control.exe
                    // (ensures the correct control.exe)

Process.Start(controlpath, "/name Microsoft.DevicesAndPrinters");

答案 1 :(得分:3)

您可以打开设备&amp;通过在命令提示符中运行命令control printers来打印窗口。

知道这一点,您可以使用cmd参数运行/C,告诉它运行该命令:

Process.Start("cmd", "/C control printers");

如果您不希望显示命令提示符,可以使用:

var Process = new Process();
var ProcessStartInfo = new ProcessStartInfo("cmd", "/C control printers");
ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process.StartInfo = ProcessStartInfo;
Process.Start();