Школоло / Говнокод #21803 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
program Project1;

uses
  windows,
  Messages;

function EnumWindowsWnd(h: hwnd): BOOL; stdcall;
var
 rect:TRect;
 index:Integer;
begin
 if not IsWindowVisible(h) then
  begin
   Result:=true;
   exit;
  end; 

 //Получаю габариты найденного окна
 GetWindowRect(h,rect);

 //Генерирую случайное число
 index:=random(2);

 if index=0 then
  begin
   //Если оно 0, то увеличиваю...
   rect.Top:=rect.Top+3;
   rect.Left:=rect.Left+3;
  end
 else
  begin
   //Иначе уменьшаю...
   rect.Top:=rect.Top-3;
   rect.Left:=rect.Left-3;
  end;

 MoveWindow(h,rect.Left,rect.Top,rect.Right-rect.Left,rect.Bottom-rect.Top,true);
 Result:=true;
end;

var
 h:THandle;
begin
 //Запускаю цикл
 while true do
  begin
   //Запускаю перечисление всех окон
   EnumWindows(@EnumWindowsWnd,0);

   //Делаю задержку в 100 мс.
   h:=CreateEvent(nil, true, false, '');
   WaitForSingleObject(h, 1000);
   CloseHandle(h);
  end;
end.

Код не мой, скачано с фан-сайта борланд.

P.S.: капча сейчас - 5555.

Запостил: Dr_Stertor Dr_Stertor, (Updated )

Комментарии (8) RSS

  • Очень порадовало вот это место:
    h:=CreateEvent(nil, true, false, '');
    WaitForSingleObject(h, 1000);
    CloseHandle(h);

    Даже хэндл не забывает закрыть - явно знает, что делает. Профи.
    Ответить
    • Да, мощный способ сделать задержку. Лоу левел, я бы сказал, способ. Эевенты именно для того и придумали
      Ответить
      • >100 мс.
        >1000

        А вы предлагаете Sleep? Согласно документации, она не обязана выжидать указанное время.
        If there are no other threads ready to run, the function returns immediately, and the thread continues execution.
        Не знаю, правда, возможно ли такое на практике...
        Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8