Показать сообщение отдельно
  #3  
Старый 11.07.2008, 17:46
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
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
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием