Программирование на C++ глазами хакера

Запуск системных 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);



Содержание раздела