Как открыть пользовательскую панель управления программно, например custom.cpl? В частности, как я могу открыть 64-битный cpl при работе как 32-битное приложение?Как программно открыть панель управления?
ответ
Vista, добавлена поддержка канонических имен, поэтому вам не придется жесткими имена файлов DLL кода и вкладка индексирует
Пример: WinExec ("% systemroot% \ system32 \ control.exe/name Microsoft.WindowsUpdate", SW_NORMAL);
(имена всегда на английском языке)
См MSDN для списка
XP/2000 поддерживает «control.exe мышь» и несколько других ключевых слов, см той же странице MSDN для списка (You возможно, найдут некоторые недокументированные, запустив строки на control.exe)
Поскольку я не нашел хороший ответ здесь на SO, вот решение моего исследования:
- Запустите новое приложение «контроль», который получает название панели управления в качестве первого параметра:
::ShellExecute(m_hWnd, NULL, _T("control.exe"), _T("access.cpl"), NULL, SW_SHOW);
Шаг1: Прочитайте системный каталог с машины. Шаг2: Использование Процесс запуска ControlPanel
**Process.Start(System.Environment.SystemDirectory + @"\appwiz.cpl");**
Как я уже упоминал в другом вопросе:
Если вы наберете "Start Control" или "Control" в Command Prompt будет открыть панель управления.
Поэтому просто запустите процесс.
Этот код (пыльник) работал отлично для меня:
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); }
}
просто использовать это ....
ProcessStartInfo startInfo = new ProcessStartInfo("appwiz.cpl");
startInfo.UseShellExecute = true;
Process.Start(startInfo);
почему сообщества вики? –
Я решил для вики сообщества, поскольку я в основном отвечал на вопрос сам, но только для 32-битной панели управления. – vividos