БлогNot. 10 мелких пакостей, которые может сделать программа на C++ Builder

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 [14263 просмотра]


теги: windows c++ список builder

К этой статье пока нет комментариев, Ваш будет первым