10 мелких пакостей, которые может сделать программа на C++ Builder
На самом деле, пример следует рассматривать как напоминание того, что при программировании под Windows многие вещи легче всего делать как раз интерфейсами к стандартными функциям Windows :) Разумеется, "пакостей" существует гораздо больше, просто привожу то, что успел проверить сейчас. Подробнее - в доках по Windows API и библиотеке VCL.
1. Программно выключить монитор из С++ Builder можно кодом
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
Естественно, выключение будет до внешнего события, такого как движение мыши или нажатие клавиши. Функция 1 вместо 2 - перевод монитора в режим StandBy.
2. Программно очистить корзину
SHEmptyRecycleBin(Application->Handle, NULL, 0);
Запрос на подтверждение действия будет :)
3. Программно сменить обои
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\Кофейня.bmp", SPIF_UPDATEINIFILE);
Естественно, можно указать Ваш файл, но только в формате BMP. Зато предупреждений не будет :)
4. Вывести "неснимаемый" Диспетчер Задач системы
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_TASKLIST, -1);
5. Открыть меню Пуск (главное меню) системы
SendMessage(Handle, WM_SYSCOMMAND, SC_TASKLIST, 0);
6. Истребить кнопку "Пуск" Windows:
HWND hTaskBar = FindWindow("Shell_TrayWnd", NULL); HWND hStartButton = GetWindow(hTaskBar, GW_CHILD); ShowWindow(hStartButton, SW_HIDE);
SW_NORMAL
в последнем вызове - восстановить :)
7. Удалить пункт из системного меню окна (в данном случае удалется пункт "Переместить")
HMENU const hMenu = GetSystemMenu(Handle, false); DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND);
8. Выполнить системную функцию блокировки рабочей станции
LockWorkStation();
9. Отключить кнопку закрытия окна
HMENU MenuHandle = GetSystemMenu(WindowHandle, false); if (MenuHandle) DeleteMenu(MenuHandle, SC_CLOSE, MF_BYCOMMAND);
10. Насоздавать папок где попало и молча :)
#include <System.hpp> //... MkDir("C:\\Test\\");
Здесь создана папка Test
в корне диска C:
.
А что, права настраивать надо :)
30.04.2013, 10:53 [14380 просмотров]