Ошибка: Failed to parse the Currency Converter XML document.
$37 282.08


Ошибка: Failed to parse the Currency Converter XML document.
$18 954.92


Ошибка: Failed to parse the Currency Converter XML document.
$778.13


Работаем с рабочим столом

Привет! Сегодня мы будем работать с тем, что постоянно видим на экране своего монитора, а именно со своим рабочим столом. Не буду сильно болтать о том о сем а сразу же начну с полезных примеров. Для начала давайте разберемся как можно обновить рабочий стол. Я знаю целых два способа для этого. Вот первый из них:

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(FindWindow(«Progman», «Program Manager»),
WM_COMMAND,
$A065,
0);
end;

Вот второй способ:

procedure TForm1.Button1Click(Sender: TObject);

var
hDesktop: HWND;
begin
hDesktop := FindWindowEx(FindWindowEx(
FindWindow(«Progman», «Program Manager»), 0,
«SHELLDLL_DefView», «»), 0, «SysListView32», «»);
PostMessage(hDesktop, WM_KEYDOWN, VK_F5, 0);
PostMessage(hDesktop, WM_KEYUP, VK_F5, 1 shl 31);
end;

Теперь давайте разберемся как можно при помощи Делфи установить на рабочий стол свои собственные обои. При этом надо учитывать, что картинка должна быть в формате bmp. Вот как это делается:

SystemParametersInfo(SPI_SetDeskWallpaper,0,Pchar(«обоина»),SPIF_UPDATEINIFILE);


В данном примере естественно вместо слова обоина нужно вписать путь к bmp-шке. Теперь давайте вызовим окно завершения работы Windows. Вот код:

SendMessage (FindWindow («Progman», «Program Manager»), WM_CLOSE, 0, 0);

Теперь давайте разберемся как можно выровнять иконки по левую сторону рабочего стола. Для начала нам нужно получить дескриптор рабочего стола, который является обычным ListView. Вот получение его:

function GetDesktopListViewHandle: THandle;
var
S: String;
begin
Result := FindWindow(«ProgMan», nil);
Result := GetWindow(Result, GW_CHILD);
Result := GetWindow(Result, GW_CHILD);
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> «SysListView32» then Result := 0;
end;

Теперь можно работать с этим дескриптором при помощи API:

SendMessage(GetDesktopListViewHandle,LVM_ALIGN,LVA_ALIGNLEFT,0);

Вот эта строка и выравнивает иконки по левому краю. Сейчас я научу вас скрывать/показывать иконки которые расположены на рабочем столе. Делается это вот каким способом, для начала мы создадим процедуру, а потом запустим ее с разными параметрами, вот эта процедура:

procedure ShowDesktop(const YesNo : boolean);
var h : THandle;
begin
h := FindWindow(«ProgMan», nil);
h := GetWindow(h, GW_CHILD);
if YesNo = True then
ShowWindow(h, SW_SHOW)
else
ShowWindow(h, SW_HIDE);
end;

Теперь нам надо вызвать нашу процедуру. Если вы хотите скрыть иконки на рабочем столе то вызовете:

ShowDesktop(false);

Если вам надо показать иконки то:

ShowDesktop(true);

Теперь две функции не очень на прямую относящиеся к рабочему столу, но описать их мне хочется здесь и сейчас. Первая это зачем парится со всеми иконками когда можно просто отключить монитор:

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Если хотите включить монитор то вместо 0 ставьте 1. Ну, и наконец в этой статье мы вызывали окно завршения работы Windows. Давайте теперь просто перезагрузим нашу систему:

ExitWindows(EW_RESTARTWINDOWS, 0 );

Можно вместо EW_RESTARTWINDOWS писать:

EW_RESTARTWINDOWS
EW_REBOOTSYSTEM
EW_EXITANDEXECAPP

Вот и все, что я хотел сегодня вам рассказать.

 

Интересное

Перьевые ручки Parker....
Элегантный корпус, перо из качественного металла, заправленный жидкими чернилами контейнер внутри – перьевая ручка не нуждается в особом представлении. Принцип работы ее прост: при небольшом...
Подробнее...
Протоколы интернет
Прародителем сети интернет была сеть ARPANET. Первоначально её разработка финансировалась Управлением перспективного планирования (Advanced Research Projects Agency, или ARPA). Проект стартовал...
Подробнее...
Виртуальные Хосты
Проблема виртуальных хостов становится довольно острой, когда у вас имеется в интернете 2 хоста или более. Для их администрирования обычным localhost не отделаешся. А вот с помощью виртуальных...
Подробнее...
Обзор игровых...
Если ваш стаж общения с компьютерами достаточно велик, то весьма вероятно, что вы помните то знаменательное событие — превращение ПК в мультимедийное устройство. Для России, да и для значительной...
Подробнее...
Как взломать домофон
Итак маза состоит в следущем — более половины домофонов стоящих в Москве на самом деле левые, китайские или корейские — это не важно. Важно другое — все эти домофоны довольно легко взломать. Итак,...
Подробнее...
Что делать если Windows XP...
Переход с Windows XP на Windows Vista довольно медленный процесс, особенно когда пользователь любопытен, но в то же время нерешителен. Не все убеждены в том, что новая ОС имеет функции, ради...
Подробнее...
Работаем с рабочим столом
Привет! Сегодня мы будем работать с тем, что постоянно видим на экране своего монитора, а именно со своим рабочим столом. Не буду сильно болтать о том о сем а сразу же начну с полезных примеров....
Подробнее...
Тюнинг Windows Server 2003
Как Вы знаете, многие серверные ОС предназначены большей частью для работы сервером, не имея возможностей использования как «домашней» ОС. В этой статье речь пойдет о настройке Windows Server 2003...
Подробнее...
Что? Шумит компьютер?
Давным давно жили-были первые компьютеры. Они были большие и неповоротливые и очень сильно шумели и гудели. Эти первые компьютеры были очень нежные, хоть и железнокрепкие (я — Маяковский!),...
Подробнее...
Криптография: палка о двух...
Криптография в наши дни повсюду. Большинство пользователей каждый день извлекают из неё пользу, даже если делают это не осознанно. В этой статье мы рассмотрим, почему криптография является «палкой...
Подробнее...