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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 12:31   #1
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию Нажатие кнопок мыши в чужом приложении

Есть программа: клиент и сервер. Необходимо сделать так, чтобы при нажатие в клиенте правой кнопкой мыши на чужом компе появлялось контекстное меню. Я сделал только щелчок левой кнопкой мыши. Правой не получается.

P.S.
Пробовал через MouseDown - координаты смещались. Щелчок был, но не в том месте, где нужно...
то есть, по сути, вся проблема сводиться к тому, что координаты сбиваются - пробовал сохранять во временный файл - смотреть координаты, там цифры вообще с потолка берутся...

Последний раз редактировалось Der_G()RuNu(h; 21.04.2011 в 12:39.
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 21.04.2011, 16:11   #2
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
то есть, по сути, вся проблема сводиться к тому, что координаты сбиваются - пробовал сохранять во временный файл - смотреть координаты, там цифры вообще с потолка берутся...
Мышь на клиенте перемещайте так
Код:
SetCursorPos(X, Y: Integer);
Разрешение мониторов одинаковое?

Add
И по возможности опубликуйте код.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 21.04.2011 в 16:15.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 21.04.2011, 18:47   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а причем тут сеть вообще?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.04.2011, 19:24   #4
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
И по возможности опубликуйте код.
Код:
p:= ((mouse.CursorPos.x-imgScreen.Left - MainForm.Left)*100)/imgScreen.Width;
        p:= (x*100)/imgScreen.Width;
        xx:= Round((ServerWidth*p)/100);
        p:= ((mouse.CursorPos.y-imgScreen.Top - MainForm.Top)*100)/imgScreen.Height;
        p:= (y*100)/imgScreen.Width;
        yy:= Round((ServerHeight*p)/100);
        WriteLn('set_cursor');
        WriteInteger(xxx);
        WriteInteger(yyy);
if Button=mbLeft then
          begin
            //ShowMessage(IntToStr(xx)+#32+IntToStr(yy));
            WriteLn('mouse_click_left');
            WriteInteger(xxx);
            WriteInteger(yyy);
          end;
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а причем тут сеть вообще?
как это при чем, у меня соединение по сети идет...

Последний раз редактировалось Stilet; 23.04.2011 в 16:05.
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 21.04.2011, 19:37   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так у вас не получается соединение?
или функционал кликования?
судя по вопросу второе, просто выбрав верно раздел быстрее получите ответ.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.04.2011, 20:40   #6
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
так у вас не получается соединение?
или функционал кликования?
судя по вопросу второе, просто выбрав верно раздел быстрее получите ответ.
соединение у меня получается... ситуация в другом, представь:
я клиент, ты сервер, я к тебе подконнектился, вижу твой монитор, могу управлять твоей мышью, видя все действия у себя на форме, но при нажатие на какое-либо окно или иконку на раб. столе и т.п. я не попадаю в эту точку, клик происходит, но не в том месте, где мне надо...
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 21.04.2011, 20:58   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы куда выводите изображение?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.04.2011, 07:15   #8
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
так у вас не получается соединение?
или функционал кликования?
судя по вопросу второе, просто выбрав верно раздел быстрее получите ответ.
Мне кажется, что ошибка при отправлении или при приеме координат, хотя я тоже так думаю.
Цитата:
WriteInteger(xxx);
WriteInteger(yyy);
Откуда у вас переменные xxx yyy? Опубликуйте код клиента. Клиент/сервер на
id TCP?

P.S.Прийду со школы напишу с нуля и опубликую

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 22.04.2011, 12:15   #9
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы куда выводите изображение?
на имидж...

1 - это форма, на которой лежит первый имидж
2 - это второй имидж, который на первом
есть ещё третий имидж, но это уже большой экран...

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Мне кажется, что ошибка при отправлении или при приеме координат, хотя я тоже так думаю.
я тоже так думаю, но формулы правильные... причем, как только я пишу, шоу месседж, там без разницы, что в него записать, все сразу работает...


Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Откуда у вас переменные xxx yyy? Опубликуйте код клиента. Клиент/сервер на
id TCP?

P.S.Прийду со школы напишу с нуля и опубликую
это я тренировался, пробовал все, даже самые тупые идеи, но не прокатило...

Последний раз редактировалось Stilet; 23.04.2011 в 16:07.
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 22.04.2011, 18:54   #10
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Попробуйте писать все в одну строку. Например: "Coordinats#X:1024#Y:168" и потом функциями AnsiPos, Copy, Delete, извлекайте данные.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как узнать произошло ли нажатие на кнопку в чужом окне(приложении) Dim969 Общие вопросы C/C++ 1 18.12.2010 15:05
Вызвать хоткей в чужом приложении. Gypsy Общие вопросы Delphi 6 27.02.2010 11:26
Окно в чужом приложении? Volkogriz Общие вопросы Delphi 3 10.02.2009 18:22
Нажатие кнопок мыши zzzzz Win Api 7 02.12.2007 12:33