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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа с использованием функиций WinApi 
:(
    Опции темы
Igor22
Дата 27.2.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо этому чудесному сайту, большое спасибо программистам, которые отвечают на вопросы. 
По сути: мне необходимо создать программу, только не знаю с какого места зайти в Делфи. Основная функция программы заключается в том, что при нажатии на любую кнопку в Windows-ce, Internet Explorer, флешь анимации (это самое главное), эта кнопка распознавалась, и в программе происходили какие нибудь действия, например записывалось что Пользователь в такое то в время нажал кнопку «добавить» во флешь анимации, или закрыть.
Распознавание кнопки хотелось бы, что происходило при помощи сравнения с таким же рисунком, например, Пользователь нажал кнопку «закрыть» далее сработала моя программа, она сравнила со своей базой кнопок «закрыть» с кнопкой которую, нажал пользователь… 
Так же программа должна, сама понимать на какую кнопку нажал пользователь, просто есть кнопки, которые нельзя распознать как текст, например «>>>» что обозначает далее.
Прошу заметить, что я работаю не над шпионской программой, просто мне необходимо сделать статистику для одной программы!…


PM MAIL   Вверх
Riply
Дата 27.2.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

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



Цитата(Igor22 @  27.2.2008,  13:40 Найти цитируемый пост)
Распознавание кнопки хотелось бы, что происходило при помощи сравнения с таким же рисунком, например, Пользователь нажал кнопку «закрыть» далее сработала моя программа, она сравнила со своей базой кнопок «закрыть» с кнопкой которую, нажал пользователь… 


Я, помнится, тоже теорему Ферма доказывала  smile 

По делу: 
 попробуй для начала вести статистику, в какой программе и сколько времени находился пользователь.

PM MAIL   Вверх
source777
Дата 27.2.2008, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

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



Цитата(Igor22 @  27.2.2008,  13:40 Найти цитируемый пост)
Основная функция программы заключается в том, что при нажатии на любую кнопку в Windows-ce, Internet Explorer, флешь анимации (это самое главное), эта кнопка распознавалась, и в программе происходили какие нибудь действия...
Распознавание кнопки хотелось бы, что происходило при помощи сравнения с таким же рисунком, например, Пользователь нажал кнопку «закрыть» далее сработала моя программа, она сравнила со своей базой кнопок «закрыть» с кнопкой которую, нажал пользователь… 
Так же программа должна, сама понимать на какую кнопку нажал пользователь, просто есть кнопки, которые нельзя распознать как текст, например «>>>» что обозначает далее.
1) Ссылка - это не кнопка
2) кнопка - это не то, на что можно нажать...
3) Реально реализовать для обычных кнопок в обычных Windows-приложениях, забудь о браузерах, флеше, etc...

Добавлено через 2 минуты и 19 секунд
Цитата(Igor22 @  27.2.2008,  13:40 Найти цитируемый пост)
Прошу заметить, что я работаю не над шпионской программой
А по другому это и не назвать, именно шпионская программа, на которую будут вопить различные ИСЗ...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
ama_kid
Дата 27.2.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Цитата(source777 @  27.2.2008,  16:42 Найти цитируемый пост)
Реально реализовать для обычных кнопок в обычных Windows-приложениях, забудь о браузерах, флеше, etc...
Добавлю к этому, что не каждая кнопка, которая выглядит как обычная, таковой и является - она может быть самодельная, рисованная и какая угодно ещё...
Цитата(Igor22 @  27.2.2008,  13:40 Найти цитируемый пост)
Распознавание кнопки хотелось бы, что происходило при помощи сравнения с таким же рисунком, например, Пользователь нажал кнопку «закрыть» далее сработала моя программа, она сравнила со своей базой кнопок «закрыть» с кнопкой которую, нажал пользователь…
Ты хочешь хранить все возможные варианты кнопок "закрыть" в базе данных? Готовь толстый винчестер... smile  Кроме того, сам процесс распознавание образов - далеко не тривиальная задача  smile 


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Igor22
Дата 27.2.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я знаю что для программистов невозможного просто нет, просто иного незнаешь с этой стороны лучше подойти.... 

Я программу перенаправляю, а не пишу "шпионку", так что.. всё нормально...

раскажите как сделать так, что бы нажатую кнопку иденфицировать в момент нажатия? 
а неискать функцией FindWindow?

или делать снимок нажатой кнопочке?
PM MAIL   Вверх
source777
Дата 27.2.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

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



Цитата(Igor22 @  27.2.2008,  17:45 Найти цитируемый пост)
раскажите как сделать так, что бы нажатую кнопку иденфицировать в момент нажатия? 
Надо поставить глобальный перехватчик на сообщение wm_LButtonDown, а потом по координате с помощью WindowFromPoint найдешь окно, затем контекст устройства при помощи GetDC, затем копируй снимок окна с помощью BitBlt и сравнивай его с чем хочешь сколько влезет...
P.S. Подобная программа спалится на любой системе с проактивной защитой(антивирь, фаерволл) как шпионская!!!

Добавлено через 3 минуты и 9 секунд
Также будет полезно перехватить сообщение BN_PUSHED, но оно будет только для обычных кнопок...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Igor22
Дата 28.2.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
  msg: PEVENTMSG;
  h: Hwnd;
  DC : HDC;
  Rect  : TRect;

begin
  if Code >= 0 then begin
    result := 0;
    msg := Pointer(LParam);

case msg.message of

    WM_MOUSEMOVE:
    Form1.Caption := IntToStr(msg.ParamL) + #32 + IntToStr(msg.ParamH);

    WM_LBUTTONDOWN: 
    begin

    h := WindowFromPoint(Mouse.CursorPos);
    GetWindowRect(h,Rect);
    DC := GetDC(h); GetDC
    BitBlt(dc,0,0,Rect.Right-Rect.Left,Rect.Bottom-Rect.Top,
         DC,0,0,SRCCOPY);

что то  у меня некопируется????
и как вставить на форму???
 Image1.Canvas.Draw(0,0,??????);


     end;
  end else
    result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;


Это сообщение отредактировал(а) Igor22 - 28.2.2008, 12:10
PM MAIL   Вверх
source777
Дата 28.2.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

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



Цитата(Igor22 @  28.2.2008,  11:56 Найти цитируемый пост)
что то  у меня некопируется????
угу, а до этого момента типа всё работает? 


Цитата(Igor22 @  28.2.2008,  11:56 Найти цитируемый пост)
и как вставить на форму???
 Image1.Canvas.Draw(0,0,??????);
Какую, мля, форму? ловушка глобальная должна быть, в dll и без всяких VCL-примочек...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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