|
|
|||||||||||||||||||||||||||||
|
Работаем с рабочим столомИсточник: pcnext Darkmaster
Привет! Сегодня мы будем работать с тем, что постоянно видим на экране своего монитора, а именно со своим рабочим столом. Не буду сильно болтать о том о сем а сразу же начну с полезных примеров. Для начала давайте разберемся как можно обновить рабочий стол. Я знаю целых два способа для этого. Вот первый из них: procedure TForm1.Button1Click(Sender: TObject); Вот второй способ: procedure TForm1.Button1Click(Sender: TObject); Теперь давайте разберемся как можно при помощи Делфи установить на рабочий стол свои собственные обои. При этом надо учитывать, что картинка должна быть в формате bmp. Вот как это делается: SystemParametersInfo(SPI_SetDeskWallpaper,0,Pchar('обоина'),SPIF_UPDATEINIFILE); В данном примере естественно вместо слова обоина нужно вписать путь к bmp-шке. Теперь давайте вызовим окно завершения работы Windows. Вот код: SendMessage (FindWindow ('Progman', 'Program Manager'), WM_CLOSE, 0, 0); Теперь давайте разберемся как можно выровнять иконки по левую сторону рабочего стола. Для начала нам нужно получить дескриптор рабочего стола, который является обычным ListView. Вот получение его: function GetDesktopListViewHandle: THandle; Теперь можно работать с этим дескриптором при помощи API: SendMessage(GetDesktopListViewHandle,LVM_ALIGN,LVA_ALIGNLEFT,0); Вот эта строка и выравнивает иконки по левому краю. Сейчас я научу вас скрывать/показывать иконки которые расположены на рабочем столе. Делается это вот каким способом, для начала мы создадим процедуру, а потом запустим ее с разными параметрами, вот эта процедура: procedure ShowDesktop(const YesNo : boolean); Теперь нам надо вызвать нашу процедуру. Если вы хотите скрыть иконки на рабочем столе то вызовете: ShowDesktop(false); Если вам надо показать иконки то: ShowDesktop(true); Теперь две функции не очень на прямую относящиеся к рабочему столу, но описать их мне хочется здесь и сейчас. Первая это зачем парится со всеми иконками когда можно просто отключить монитор: SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0); Если хотите включить монитор то вместо 0 ставьте 1. Ну, и наконец в этой статье мы вызывали окно завршения работы Windows. Давайте теперь просто перезагрузим нашу систему: ExitWindows(EW_RESTARTWINDOWS, 0 ); Можно вместо EW_RESTARTWINDOWS писать: EW_RESTARTWINDOWS Вот и все, что я хотел сегодня вам рассказать. Ссылки по теме
|
|