链接到C#中的控制面板(运行播发程序和配置管理器)

时间:2013-05-30 18:27:39

标签: c# visual-studio-2010 visual-studio

我正在尝试从C#应用程序中链接到控制面板。我正在使用visual studio进行编码,并试图找到一种方法来链接控制面板中的这两个区域。

我一直在使用System.Diagnostics.Process.Start(),但我似乎找不到一种方法来实际链接到控制面板内的任何地方,除了已经定义了applet的少数几个地方,如打印机和颜色。

如果您对如何解决这个问题有任何想法,请告诉我。

3 个答案:

答案 0 :(得分:4)

这对我有用:

var cplPath = System.IO.Path.Combine(Environment.SystemDirectory, "control.exe");
System.Diagnostics.Process.Start(cplPath, "/name Microsoft.ProgramsAndFeatures");

您还可以指定控制面板的页面。查看Executing Control Panel ItemsCanonical Names of Control Panel Items

答案 1 :(得分:1)

如果您只想启动控制面板窗口,则命令为

System.Diagnostics.Process.Start("control");

如果你想在控制面板中启动单个项目,你需要知道它的文件名(检查文件的Windows\System32Windows\SYSWOW64,它们以.cpl结尾)你然后可以像这样启动它。

System.Diagnostics.Process.Start("control", "powercfg.cpl");

答案 2 :(得分:0)

如果您输入"开始控制"或"控制"进入命令提示符,它将打开控制面板。

因此我会运行一个进程并运行它。 本规范(Bellow)对我来说非常有用:

public Form1()
{
     InitializeComponent();
}

    #region Variables
    Process p;
    #endregion Variables

    [...]

    void myMethod()
    {
            try
            {
                p = new Process();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.UseShellExecute = false;
                p.Start();

                p.StandardInput.WriteLine("start control"); 
                p.StandardInput.Flush();
                p.StandardInput.Close();
                Console.WriteLine(p.StandardOutput.ReadToEnd());
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
    }