как управлять windows?
Есть процесс (без окна). По сети он получает от меня сообщения и посылает мне картинку рабочего стола.
Как из этого процесса кправлять мышкой и клавиатурой пользователя, т.е. нажимать клавиши, и кнопки мыши, чтобы получить полноценное управление удаленным рабочим столом.
Заранее спасибо
Здравствуйте.
Есть процесс (без окна). По сети он получает от меня сообщения и посылает мне картинку рабочего стола.
Как из этого процесса кправлять мышкой и клавиатурой пользователя, т.е. нажимать клавиши, и кнопки мыши, чтобы получить полноценное управление удаленным рабочим столом.
Заранее спасибо
по моему ответ очевиден. ловишь этим процессом все сообщения, приходящие ему и пересылаешь их на удаленную тачку. там эти сообщения посылаются кому надо.
а вообще - в сети полно исходников различных радминов...
по моему ответ очевиден. ловишь этим процессом все сообщения, приходящие ему и пересылаешь их на удаленную тачку. там эти сообщения посылаются кому надо.
а вообще - в сети полно исходников различных радминов...
Я не понятно выразился.
Этот процес и находиться на удаленной машине, я посылаю ему сообщения со своего компа. Задача вот в чем, как из этого процеса управлять состоянием мыши и клавиатуры (кнопки нажимать и перемещать).
Я не понятно выразился.
Этот процес и находиться на удаленной машине, я посылаю ему сообщения со своего компа. Задача вот в чем, как из этого процеса управлять состоянием мыши и клавиатуры (кнопки нажимать и перемещать).
ну чтобы НАЖИМАТЬ кнопки на удаленной машине надо быть Гарри Поттером... :0 а вообще - используй на удаленной машине SendMessage, SetCursorPos и т. п.
т. е. - на локальную машину приходит сообщение WM_COMMAND которое является числовым идентификатором. lParam & wParam - характеризуют сообщение. сообщение и его характеристики перенаправляется на удаленную машину. а там при помощи SendMessage посылается куда надо. или я опять неправильно понял?
Поняли вы абсолютно правильно, так я и делаю.
Меня интерисуют детали, в том то и дело, что я не знаю, куда надо посылать. Все, что мне известно о удаленном рабочем столе это его внешний вид (по сети кудаеться рисунок, который потом отображаеться на моей форме. По этой форме я вожу мышкой и хочу чтобы эти "вождения" передавались на удаленную машину (SetCursorPos)
Не могу понять одного, как имитировать нажатия кнопок.
ну чтобы НАЖИМАТЬ кнопки на удаленной машине надо быть Гарри Поттером... :0 а вообще - используй на удаленной машине SendMessage, SetCursorPos и т. п.
т. е. - на локальную машину приходит сообщение WM_COMMAND которое является числовым идентификатором. lParam & wParam - характеризуют сообщение. сообщение и его характеристики перенаправляется на удаленную машину. а там при помощи SendMessage посылается куда надо. или я опять неправильно понял?
Единственнное, если, кто знает макрос для формирования lParam для WM_LBUTTONDOWN, весь MSDN пропыл там вроде ничего нет, а должно быть.
Спасибо за ответы :)
Поняли вы абсолютно правильно, так я и делаю.
Меня интерисуют детали, в том то и дело, что я не знаю, куда надо посылать. Все, что мне известно о удаленном рабочем столе это его внешний вид (по сети кудаеться рисунок, который потом отображаеться на моей форме. По этой форме я вожу мышкой и хочу чтобы эти "вождения" передавались на удаленную машину (SetCursorPos)
Не могу понять одного, как имитировать нажатия кнопок.
Получилось!!!
Единственнное, если, кто знает макрос для формирования lParam для WM_LBUTTONDOWN, весь MSDN пропыл там вроде ничего нет, а должно быть.
дружище!!! я тебя умоляю... ставь понятнее вопросы! что именно за макрос тебе нужен? я для работы с WM_LBUTTONDOWN всегда использовал два макроса:
xPos = LOWORD(lParam); позиция курсора по горизонтали
yPos = HIWORD(lParam); и, соответственно, по вертикали
оно?
используя эти макросы можно как считывать lParam так и формировать его... а что оно делает по моему ясно :)
я искал макрос MAKELPARAM, и уже его нашел.
Проблемма в другом, я посылаю на удаленную машину координаты мышки, там вычисляю над каким окном она находиться (WindowFromPoint).
После этого посылаю этому окну сообщение WM_LBUTTOBDOWN либо WM_LBUTTONUP. При таком раскладе получаеться выделять файлы в проводнике, открывать Пуск, смотреть свойства папки. Но не получаеться переключиться на другое окно, т.е. если на раб столе есть два проводника, активен один, переключиться на неактивный не получаеться.
Перед отправкой сообщения активизирую окно под мышкой и его parent (ShowWindow).
Главная проблемма с переключением окон, все остальное я уже додумал.
дружище!!! я тебя умоляю... ставь понятнее вопросы! что именно за макрос тебе нужен? я для работы с WM_LBUTTONDOWN всегда использовал два макроса:
xPos = LOWORD(lParam); позиция курсора по горизонтали
yPos = HIWORD(lParam); и, соответственно, по вертикали
оно?
используя эти макросы можно как считывать lParam так и формировать его... а что оно делает по моему ясно :)
Именно это я и искал, управление не сообщениями а источником этих сообщений, спасибо большое.
надежнее использовать SendInput, так как не все программы откликаются на WM_ input сообщения