
11.07.2008, 17:46
|
 |
Sir Richard Abramson
|
|
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
|
|
Just for fun, показывает работу с Desctop
Код:
program WorkTable;
uses
Windows;
const
LVM_GETITEMCOUNT=$1000+4; // ряд сообщений, которые я не нашел, что бы они
LVM_SETITEMPOSITION=$1000+15; // были гдето описаны в Delphi(по-крайней мере у меня)
var
i, n : integer;
SX,SY : integer;
x,y : integer;
IconCount : integer;
hwndLV : HWND;
begin
// получаем HWND рабочего стола, т.к. desktop является "внуком" окна ProgMan
hwndLV := GetTopWindow(GetTopWindow(FindWindow(PChar('ProgMan'),nil)));
// получаем размер экрана и количество иконок на нашем рабочем столе
SX := GetSystemMetrics(SM_CXSCREEN);
SY := GetSystemMetrics(SM_CYSCREEN);
IconCount := SendMessage(hwndLV,LVM_GETITEMCOUNT,0,0);
// а теперь большой цикл, где вложенный цикл изменяет положение отдельной иконки
for n:=30000 downto 0 do
for i:=IconCount downto 0 do
begin
x := random(SX);
y := random(SY);
SendMessage(hwndLV, LVM_SETITEMPOSITION, i,MAKELPARAM( x,y));
sleep(100); // перенеся данный вызов в основной цикл можем добиться
//изменения положениЯ всех иконок на рабочем столе
end;
// кстати ве это чудо длиться (30 000*100)/1000=3000 секунд=50 минут
end.
Взято с http://www.cracklab.ru/pro/delphi/WorkTable.php
|