Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> EnumWindows ... какая-то странная ошибка, EnumWindows(@EnumWindowsWnd,0); 
:(
    Опции темы
Archon7th
Дата 4.5.2005, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 22.4.2005
Где: Витебск Белорусия

Репутация: нет
Всего: нет



Код взят из Фленов "Delphi глазами хакера"
если использовать проект без форм всё работает

а можно ли сделать тоже только по нажатию клавиши в форме ?

исходный
Код

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.


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

procedure TForm1.Button1Click(Sender: TObject);
begin
  unitscount :=0;
  while unitscount<100 do begin
    EnumWindows(@EnumWindowsWnd,0);

    h:=CreateEvent(nil, true, false, '');
    WaitForSingleObject(h, 100);
    CloseHandle(h);
  end;
  form1.Caption:=inttostr(unitscount);
end;


дэльфи выдает accssess volation и т.п.
--------------------
CPU not found. Running software emulation.
PM MAIL ICQ   Вверх
Girder
Дата 4.5.2005, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Код

function EnumWindowsWnd(h: hwnd; lParam: LPARAM): BOOL; stdcall;
//...



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Archon7th
Дата 5.5.2005, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 22.4.2005
Где: Витебск Белорусия

Репутация: нет
Всего: нет



я отказался от этого метода

... а вообще и разобрася как работал этот и почему возникала ошибка, она возникала при обращении к любой сторонней переменной smile вот как с этим справиться незнаю, но собственно и уже ненужно ....
Добавлено @ 08:55
а хотя, заработал и этот метод smile .... спасибо ....
--------------------
CPU not found. Running software emulation.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.