Эта статья была собрана и составлена Lanyus из «Delphi для прекрасного программирования».
1. Скрыть панель задач
В Windows панель задач системы по сути представляет собой окно с названием класса окна "Shell_traywnd". Для реализации операций вы можете использовать функцию API
FindWindow и
ShowWindow для достижения своей цели.
вар
Wndhandle: Тандл;
wndclass: массив [0..50] из char;
Начинать
Strpcopy (@wndclass [0], 'shell_traywnd');
wndhandle: = findwindow (@wndclass [0], nil);
ShowWindow (Wndhandle, SW_HIDE);
конец;
2. Скрытые ярлыки на рабочем столе
Как и панель задач, настольный компьютер на самом деле является окном.
решить, отображать ли.
3. Получите размер панели задач и местоположение
Используйте FindWindow, чтобы найти ручку, а затем использовать GetWindowRect, чтобы получить текущий размер панели задач.
GetWindowRect (hwnd hwnd, // Ручка запрошенного окна
Lprect // адрес структуры, в которой хранится координаты окна
): Логический;
4. Получить информацию CPU
Соответствующая информация ЦП хранится в структуре, которая инкапсулируется Delphi с Tsysteminfo и определяется следующим образом:
typedef struct_system_info {
Союз {
DWORD DWOEMID;
структура {
Word wprocessorArchitecture; // Обозначает архитектуру процессора
Word Wreserved;
};
};
DWORD SWPAGESIAE;
LPVOID LPMinimumApplicationAddress;
LPVOID LPMAXIMUMUMAPPLICATIONADDRESS;
DWORD SwactyPacessormask;
Dword dwnumberofProcessors;
DWORD DWPOCESSORTIPE;
Dword DwallocationGranulity;
Word wprocessorlevel;
Word WprocessorRevision;
} System_info;
Среди них dwprocessortype определяется тремя членами: wprocessorararchitecture, wprocessorlevel и wprocessorseRevision, и его значение:
Processor_intel_386: Intel80386 Series;
Processor_itnel_486: Intel80486 Series;
Processor_intel_pentium: Intel Pentium series;
Processor_mips_r4000: серия MIPS 4000 (только применимо к Windows NT);
Processor_alpha_21064: серия Alpha 21064 (только применима к Windows NT);
Кроме того, просто вызовите функцию API getSysteminfo после получения информации CPU.
5. Получить информацию о памяти.
Так же, как в получении процессора, система по -прежнему использует структуру для хранения информации о памяти. Определение этой хранимой информации внутреннего состояния заключается в следующем:
typedef struct_memorystatus {
Dword dwlength;
DWORD DWMEMORYLOAD;
DWORD DWTOTALPHYS;
Dword dwavailphys; // Доступный размер физической памяти
DWORD DWTOTALPAGEFILE;
Dword dwavailpagefile;
Dword dwtotalvirtual;
Dword dwavailvirtual; // Размер доступной виртуальной памяти
} MemoryStatus,*lpmemoryStatus;
Наконец, вызовите функцию API GlobalMemoryStatus, чтобы получить информацию о памяти.
6. Получите размер пространства диска. (Тест найден неточным)
Используйте функцию API getDiskFreespace.
Bool getDiskFreepse (
LPCTSTR LPROOTPATHNAME, // ROOT DICERECTORY
Lpdword lpsectorspercluster, // количество секторов на кластер
Lpdword lpbytestescrector, // количество байтов на сектор
Lpdword lpnumberoffreeclusters, // количество доступных кластеров
Lpdword lptotalnumberofclusters // Общее количество кластеров
);
Процедура tform1.bitbtn1click (отправитель: tobject);
вар
Secspclu, Bytespsc, Freeclu, TotalClu, TS, FS: DWORD;
Начинать
GetDiskFreespace ('c:/', secspclu, bytespsec, freeclu, totalclu);
Fs: = freeclu*secspclu*bytespsec;
Ts: = totalclu*secspclu*bytespsec;
Edit1.text: = formatfloat ('##, ###', ts);
Edit2.text: = formatfloat ('##, ###', fs);
конец;
7. Ограничьте диапазон движения мыши.
В Windows Clipcursor есть готовая функция API, которая может ограничить курсор от перемещения области.
Bool clipcursor (
Const rect *lprect // указывает на структуру, которая хранит данные прямоугольного диапазона
);
С помощью этой функции вы можете ограничить диапазон движения курсора на экране. Однако, если вы хотите управлять мышью, чтобы перемещаться в пределах фиксированного диапазона определенного окна, вам необходимо вызвать CA
Функция
MapWindowPoints, которые преобразуют координаты одной формы в другую связанные координаты формы.
int mapwindowpoints (
Hwnd hwndfrom, //
Hwnd hwndto, // Грандизации целевой формы
Lppoint Lppoints, // укажите на массив структуры, содержащий координаты, которые необходимо преобразовать
Uint cpoints // Количество структур в массиве
);
Когда параметр hwndform или hwndto является null или hwnd_desktop, это указывает на то, что исходная форма или целевая форма представляет собой форму экрана. Параметр Lppoints может указывать на
Прямая структура, в это время cpoints
Значение 2 будет установлено на 2.
Процедура tform1.bitbtn1click (отправитель: tobject);
вар
SC: TRECT;
Начинать
SC: = bitBtn2.boundsrect;
MapWindowPoints (ручка, 0, SC, 2);
Clipcursor (@Sc);
конец;
Процедура tform1.bitbtn2click (отправитель: tobject);
вар
SC: TRECT;
Начинать
sc: = rect (0,0, screen.width, screen.height);
Clipcursor (@Sc);
конец;
8. Как запустить экраны.
Используйте функции Sendmessage или Postmessage.
Процедура tform1.bitbtn3click (отправитель: tobject);
Начинать
sendmessage (hwnd_broadcast, wm_syscommand, sc_screensave, 0);
конец;
Существует также метод запуска экрана, вызывая функциональный SystemParameterSInfo, который может запустить или закрыть экрану через настройки параметров.
SystemParametersInfo (spi_setscreensaveactive, 1, nil, 0);
SystemParametersInfo (spi_setscreensaveactive, 0, nil, 0);
9. Проверьте, готов ли диск.
Нет особой функции, чтобы определить, готов ли диск, и не может быть напрямую называется функцией API с одним личным человеком для реализации этой операции. Но мы
Disksize можно использовать для обнаружения диска.
емкость.
Функциональный диск (диск: байт): int64;
Когда параметр равен 0, это означает, что текущий диск указан;
Повысился...