2

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

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

如果您知道如何找到此解决方案,请告诉我。

4

3 回答 3

5

这对我有用:

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

您还可以指定控制面板项的页面。查看执行控制面板项和控制面板项的规范名称

于 2013-05-30T18:45:58.427 回答
1

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

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

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

System.Diagnostics.Process.Start("control", "powercfg.cpl");
于 2013-05-30T18:40:43.817 回答
0

如果您在命令提示符中键入“开始控制”或“控制”,它将打开控制面板。

因此我会运行一个进程并运行它。这段代码(波纹管)对我来说非常有效:

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); }
    }
于 2015-03-20T01:03:06.323 回答