@daserge

Как послать netcat команду на закрытие?

По мотивам вчерашней статьи на Хабре Прикручиваем мультимедиа-клавиши в Яндекс.Радио автоматизировал процесс при помощи netcat for windows.
В принципе все заработало, но окно cmd не закрывается автоматически, подскажите как это можно решить?

start-pause.bat
type start-pause.txt | cmd /c "D:\Soft\netcat-win32-1.12\nc.exe" -v localhost 32000


start-pause.txt
(function(f){f.player.pause() || f.player.resume() || f.play()})(Mu.pages.player.flow);


Следущие варианты не помогли:
taskkill /im nc.exe /f
start "" "D:\Soft\netcat-win32-1.12\nc.exe" ...
В случае с start не совсем понятно как правильно перенаправлять буфер.
  • Вопрос задан
  • 1051 просмотр
Решения вопроса 1
@irvinzz
Хоть и с костылями, но удалось адаптировать.
см. конец статьи
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Как эксперимент. Сможет ли этот скрипт на powershell сделать нужное вам без использования netcat?
текст sendtcpdata.ps1
$Message = '(function(f){f.player.pause() || f.player.resume() || f.play()})(Mu.pages.player.flow);'
$socket = new-object System.Net.Sockets.TcpClient("localhost", 32000)
$data = [System.Text.Encoding]::ASCII.GetBytes($message)
$stream = $socket.GetStream()
$stream.Write($data, 0, $data.Length)

команда для запуска :
powershell.exe -WindowStyle hidden -File c:\scripts\sendtcpdata.ps1 -ExecutionPolicy unrestricted
Ответ написан
@daserge Автор вопроса
Итак, правильный вариант (еще раз спасибо, @yellowmew):
start-pause.bat
type start-pause.txt | cmd /c "D:\Soft\netcat-win32-1.12\nc.exe" -v -d localhost 32000


Upd: Кто-нибудь не read-only, дайте плиз линк сюда, у людей не получается.

Upd2: Вариант в статье с vbs работает без появления окна в отличие от cmd.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы