|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | ||||
| 
 | ||||
|  Координаты в окне и во весь экран не совпадают Здравствуйте! Делаю бота для игры. Получаю координаты пикселя следующим образом: Код: 
 Проблема в том, что если игра установлена на весь экран с разрешением 1024х768 все срабатывает, а если поставить в оконном режиме с тем же разрешением - нет... что я делаю не так? Заранее спасибо. Последний раз редактировалось Alloc, 08.10.2015 в 14:49. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   ClientToScreen и ScreenToClient спасут отца русской демократии. На свмом деле, когда ты у окна получаешь точку, то ты получаешь ее в системе координат окна. Частный случай, когда окно развернуто во весь экран, системы координат окна и всего экрана просто совпадают. | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
Alloc (08.10.2015)
 | ||
| 
			 
			#3  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 спасибо за помощь) | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 что то не получается у меня разобраться.. Скажите пожалуйста, в моем конкретном случае как это сделать? | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Т.к. ты работаешь с чужим окном, то получи его положение и, соответственно, пересчитай свои координаты. Просто для "родных" окон у VCL есть готовый метод пересчета, а для чужих придется самому все делать (там еще, возможно, потребуется получить размер рамки и его тоже учесть в перерасчетах). | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
Alloc (08.10.2015)
 | ||
| 
			 
			#6  
			
			
			
			
		 | ||||
| 
 | ||||
|   Спасибо за ответ. Я так понимаю в момент выполнения функции: Код: 
 | 
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
|  
Alloc (09.10.2015)
 | ||
| 
			 
			#8  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 в том то и дело, что я то же не нашел, но если я задам координаты и вызову это функцию находясь в окне программы а не в окне игры: Код: 
 то получу неверные координаты такого типа: "-31315, -31514"... а если в окне игры то все нормально. | 
| 
			 
			#9  
			
			
			
			
		 | ||||
| 
 | ||||
|   А что такое h1? | 
| 
			 
			#10  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 ну как, хэндл.. | 
| 
			 
			#11  
			
			
			
			
		 | ||||
| 
 | ||||
|   Хендл чего? Где и как он получается? Также, как и в 1 посте? Кстати, не ясно, зачем в 1 посте 2 раза FindWindow. | 
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
|  
Alloc (09.10.2015)
 | ||
| 
			 
			#12  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 Да, так же как и в первом посте. А два раза вызываю FindWindow, потому что по другому не работает почему то... Я понимаю, что можно было бы сделать просто: Код: 
 но дальше проверка цвета пикселя не срабатывает... ну а так работает почему то... Но вопрос не в этом.. | 
| 
			 
			#13  
			
			
			
			
		 | ||||
| 
 | ||||
|   1) Ты заметил, что у тебя разные параметры в этих двух FindWindow? 2) Ты уверен, что искать нужно именно по первому параметру, т.е. имени класса, а не имени окна? Если "дальше проверка пикселя не срабатывает", то вопрос как раз-таки в этом. В том, что h1 имеет ошибочное значение. Посмотри в отладчике, чему равно h1. | 
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
|  
Alloc (11.10.2015)
 | ||