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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2009, 22:13   #1
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию Алгоритм : удалённая работа с клавиатурой

Пишу программу аналогичную RAdmin ( удалённое управление раб столом ).
Необходимо "передать" нажатое на моей клавиатуре на удалнный компьютер.
Интересен Ваш вариант передачи , и что будет оптимальным .
Мой алгоритм ( к примеру заполнения поля (edit - чужого нам окна )):
Вариант 1 : Нужно найти окно под мышкой , его HWND и передать этому окну "симуляцию" нажатия клавиши.
Вариант 2 : Нужно найти окно под мышкой , его HWND установить фокус , скопировать набранную на моей клавиатуре строчку и вставить с помощью буфера обмена.
Для нахождения HWND окна под мышкой
Код:
var 
  hWnd: THandle; 
  mPos: TPoint; 
begin
GetCursorPos(mPos);
hWnd := WindowFromPoint(mPos);
Симулировать нажатие клавиш
Код:
//Ctrl+C, Strg+C: Копирование как я понимаю =)
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);
keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)
Вопрос на тему оптимальности , каким образом мне передавать на 2рой компьютер табранный мною текст ? или набираемый ?
Тоесть тут есть "VK_CONTROL, MapVirtualKey(VK_CONTROL, 0)"
и "Ord('C'), MapVirtualKey(Ord('C')" ну понятно что в Ord('C') кроме С можно записать ( как я понял ) A-Z ( а чтоб было заглавным использовать имитацию шифта до ввода букв ) 0-9 , и может быть ещё каких либо знаков , в роде !"№;%:?*()!@#$^&*-_=+

Общение между приложением осуществляется посредством UDP и команд.

Суть вопроса заключается в определении варианта ( 1-2 или Ваш ) и организации оптимальной передачи набранных символов и клавиш ( их тип , как передать и обратно распознать , итп )

Всем спасибо за отзывы . Буду благодарен за полезные ответы.
//Опечатался в названии темы ^^//
P.S. А HWND я искал тк гдето видел пример отправки "нажатия клавиш" конкретному окну , хотя в моей программе приветствуется глобальное "симулирование" =)
Изображения
Тип файла: jpg Безымянный.JPG (36.1 Кб, 157 просмотров)

Последний раз редактировалось Lime; 10.02.2009 в 22:21.
Lime вне форума Ответить с цитированием
Старый 04.04.2009, 13:07   #2
loltt
Новичок
Джуниор
 
Регистрация: 18.08.2007
Сообщений: 1
По умолчанию Все намного проще

Ты можешь пользоваться Api функциями.
Например нажатие мышкой
Код:
Mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0);
Mouse_event(MOUSEEVENTF_LEFTup,X,Y,0,0);
Те нажатие и отпускание левой кнопки мыши
Поковыряйся в в справочнике Api в Delphi
Mouse_event Keyboard_Event там все написанно

loltt вне форума Ответить с цитированием
Старый 04.04.2009, 16:36   #3
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

есть окно в котором ты на своем компе отображаешь удалённый роб стол.. обрадатывай в этом окне нажатие клавишь и пересылай их на удалённый комп.. тока клавиши бери не Ord('нажатая_клавиша') а в KeyDown там передается параметр Key:Word который какраз тебе и нужно передавать на удалённый робочий стол.. события мыши проще всего использовать Mouse_event.. там есть и перемещение курсора в заданую координату экрана, и нажатие клавишь..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Примерный алгоритм программы и работа с Memo Freestyler Помощь студентам 0 10.12.2008 22:46
Алгоритм (RichEdit,inifiles,работа с текстом) GAGARIN-NEW Общие вопросы Delphi 8 29.01.2008 19:17
работа с текстом (алгоритм шифрования) GAGARIN-NEW Компоненты Delphi 7 18.10.2007 09:48