Что нового

[Сеть, интернет] Передача команды нажатия кнопки на клавиатуре удаленному ПК

AtoS

Новичок
Сообщения
57
Репутация
2
Коллеги, доброго времени суток! Возможно ли осуществить нажатие клавиши(например, NumLock) на удаленном ПК средствами AutoIT?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Re: [Сеть, интернет] Передача команды нажатия кнопки на клавиатуре удаленному П

Без клиента - нет.
 

bic

Знающий
Сообщения
46
Репутация
14
Вот пример с комментариями:
Нам-лок и др. сочетания отправляй так: {NUMLOCK}, буквы и цифры: 123 фыв.
Скомпилированый сервер должен быть на удаленном компе.
В клиенте укажи ip сервера.

Клиент
Код:
TCPStartup();Инициировать использование службы TCP
$IP = @IPAddress1;Указываем адрес к которому будем подключаться
$port = 400;Указываем порт к которому будем подключаться
$socket = TCPConnect($IP, $port);Указыываем ОС создать сокет, подключенный к указанному адресу
$dannie = InputBox('','','');Окно, которое принимает данные для отправки.
$rez = TCPSend($socket, $dannie);Отправляем данные на сервер
If @error <> 0 Then msgbox(0, "Ошибка", "Не удалось отправить данные на сервер")
TCPCloseSocket($socket);Закрываем сокетc
TCPShutdown();Завершить использование службы TCP


Сервер
Код:
TCPStartup();Инициировать использование службы TCP
$IP = @IPAddress1;Указываем адрес который будем прослушивать
$port = 400;Указываем порт который будем прослушивать
While 1
	$socket = TCPListen($IP, $port, 1);Создаем слушающий сокет, по указанному адресу
	If @error Then ExitLoop;Если не удалось создать сокет, то выйти
    $Connect = -1
    Do
        $Connect = TCPAccept($socket);Указыываем ОС создать сокет если появилось входящее подключение в прослушиваемом сокете
    Until $Connect <> -1;Если клиент подключился, то выйти из цикла, если ошибка или никто не подключился, то продолжить цикл
    While 1
        $dannie = TCPRecv($Connect, 2048);Получаем максимум 2048 символов от клиента
        If @error Then ExitLoop;Если не удалось получить символы, то выйти из цикла
        If $dannie <> "" Then;Если данные получены, то...
				send($dannie)
            ExitLoop
        EndIf
        Sleep(30)
    WEnd
    TCPCloseSocket($socket);Закрываем сокет
WEnd
TCPShutdown();Завершить использование службы TCP
 

Orus

Новичок
Сообщения
41
Репутация
1
Я попробовал, все сработало. Но получается очень медленно, возможно ли как-нибудь ускорить процесс передачи? Передавал текст от 1 до 5 символов, в локальной сети, задержка получается большая, примерно 0,6 секунды.
 
Верх