Запуск системных CPL - файлов
Добавьте в начало файла модуль shellapi.h, чтобы вы могли использовать функцию ShellExecute:
#include shellapi.h
Теперь напишите следующий код :
ShellExecute(hWnd, "Open", "Rundll32.exe", "shell32,Control_RunDLL filename.cpl", "", SW_SHOWNORMAL);
Функция ShellExecute запускает указанную программу. У нее есть следующие параметры:
окно, из которого запускается программа, — можно указать хоть 0, для нас это не важно;
действие, которое надо выполнить, — для запуска программы указываем "Open";
имя запускаемой программы;
команды, которые надо передать в командной строке;
каталог по умолчанию, с которого будет работать запущенная программа, — при задании пустой строки будет использоваться путь по умолчанию, что нас вполне устраивает;
тип запуска — параметр, который указывает, как запустить программу, — указываем SW_SHOWNORMAL, что означает запуск программы в нормальном режиме (флаг идентичен параметру у функции ShowWindow).
Например, нам нужно запустить Rundll32.exe (умеет выполнять DLL - и CPL -файлы). В качестве команды нужно передать текст вот такого вида: shell32, Control_RunDLL filename.cpl.
Тогда вот такой код отобразит окно настроек сети Интернет:
ShellExecute(hWnd, "Open", "Rundll32.exe", "shell32,Control_RunDLL inetcpl.cpl", "", SW_SHOWNORMAL);
А такой код отобразит окно настроек экрана:
ShellExecute(hWnd, "Open", "Rundll32.exe", "shell32,Control_RunDLL desk.cpl", "", SW_SHOWNORMAL);