Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2007, 15:33   #1
Haster
 
Регистрация: 28.07.2007
Сообщений: 6
По умолчанию Координаты курсора

1) Как узнать координаты курсора в другом приложении и чтобы начало координат считалось с этого же приложения.
2) Как имея адрес памяти узнать, на какое значение он указывает.
Haster вне форума Ответить с цитированием
Старый 01.08.2007, 15:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Сообщение от Haster Посмотреть сообщение
1) Как узнать координаты курсора в другом приложении и чтобы начало координат считалось с этого же приложения.
2) Как имея адрес памяти узнать, на какое значение он указывает.
Ну во-первых узнать Хендл окна под курсором (причем основного родителя) через WindowFromPoint, куда передать координаты курсора,
ну и потом GetWindowRect покажет тебе координаты этого окна, дале простым вычитанием получаеш координаты курсора относ. окна.

А по второму вопросу поконткретнее, ато не все ясно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2007, 20:09   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Haster Посмотреть сообщение
2) Как имея адрес памяти узнать, на какое значение он указывает.
Если тебе надо узнать что находится в некоторой ячейке памяти то это делается вот так
получить DWORD значение по некоторому адресу

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  address,value:DWORD;
  addrp:pointer;
begin
 address:=$400000;
 value:=DWORD(pointer(address)^);
 ShowMessage(IntToStr(value));
end;
получить WORD значение по некоторому адресу

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  address,value:DWORD;
  addrp:pointer;
begin
 address:=$400000;
 value:=WORD(pointer(address)^);
 ShowMessage(IntToStr(value));
end;
получить BYTE значение по некоторому адресу

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  address,value:DWORD;
  addrp:pointer;
begin
 address:=$400000;
 value:=BYTE(pointer(address)^);
 ShowMessage(IntToStr(value));
end;
rpy3uH вне форума Ответить с цитированием
Старый 01.08.2007, 22:01   #4
Haster
 
Регистрация: 28.07.2007
Сообщений: 6
По умолчанию

Цитата:
Если тебе надо узнать что находится в некоторой ячейке памяти то это делается вот так получить DWORD значение по некоторому адресу
Вроде всё правильно сделал, но выдаёт ошибку:
Access violation at address 004520FE.

Последний раз редактировалось Haster; 01.08.2007 в 22:42.
Haster вне форума Ответить с цитированием
Старый 02.08.2007, 22:00   #5
Rouse_
Пользователь
 
Аватар для Rouse_
 
Регистрация: 31.05.2007
Сообщений: 56
По умолчанию

Боюсь спросить, но не это ли имеется ввиду?
http://rouse.drkb.ru/winapi.php#wndinfo
Vae Victis
(Горе побежденным (лат.))
Демки с открытым кодом:
http://rouse.drkb.ru
Rouse_ вне форума Ответить с цитированием
Старый 04.08.2007, 20:08   #6
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Haster Посмотреть сообщение
Вроде всё правильно сделал, но выдаёт ошибку:
Access violation at address 004520FE.
значит адрес не существует, т.е. эта область памяти не выделена. попробуй другой адрес, не пойму а зечем это надо?
rpy3uH вне форума Ответить с цитированием
Старый 04.08.2007, 20:25   #7
Haster
 
Регистрация: 28.07.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
значит адрес не существует, т.е. эта область памяти не выделена. попробуй другой адрес, не пойму а зечем это надо?
В том и дело, что существует, но только тогда когда запускается приложение (точнее игра).
Haster вне форума Ответить с цитированием
Старый 06.08.2007, 11:12   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
значит адрес не существует, т.е. эта область памяти не выделена. попробуй другой адрес, не пойму а зечем это надо?
Haster читер, что тут не ясно

Read/WriteProcessMemory нужно использовать, просто так чужую память никто читать не даст. Пример тут
http://www.delphiworld.narod.ru/base/break_games.html (сам не проверял, а на этом ресурсе уже были пара программ с ошибками)
пыщь
JTG вне форума Ответить с цитированием
Старый 06.08.2007, 12:04   #9
Haster
 
Регистрация: 28.07.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Haster читер, что тут не ясно

Read/WriteProcessMemory нужно использовать, просто так чужую память никто читать не даст. Пример тут
http://www.delphiworld.narod.ru/base/break_games.html (сам не проверял, а на этом ресурсе уже были пара программ с ошибками)
Если проверка адреса - это читерство, то тогда не надо, игру не собирался читить. Спасибо, что предупредили.
Haster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Позиция курсора Манжосов Денис :) Помощь студентам 3 25.04.2008 16:56
как определить координаты курсора snaem Общие вопросы .NET 0 23.04.2008 22:27
Определяем вид курсора Komersant Win Api 3 09.10.2007 11:23
Координаты курсора относительно объекта на форме CoDeR Общие вопросы Delphi 4 01.08.2007 22:49
положение курсора mishel Общие вопросы Delphi 9 30.01.2007 21:37