Моя цель - запустить простой скрипт AutoHotKey на компьютере с Windows 10 с хоста Ubuntu в той же частной сети. После поиска в Google я нашел winexe, который звучал так, как будто он мог делать то, что я хочу, но после многих испытаний мне не удалось подключить его к Windows 10 («Не удалось открыть соединение - NT_STATUS_CONNECTION_RESET», дальнейшее поиск в Google не помогло). В качестве второго решения я установил SSH-сервер на Windows-машине (Bitvise SSH Server). Теперь я могу войти из Ubuntu через ssh в Windows или просто запустить команды на компьютере с Windows:
$ ssh user@windowsmachine command
Это работает для обычных команд, таких как DIR, MKDIR, ... но не работает для скриптов AutoHotKey. Например, с
$ ssh user@windowsmachine 'C:\path\to\script.ahk'
на компьютере с Windows ничего не происходит (запускается локально, этот тестовый скрипт просто показывает окно приветствия). Следующие попытки также не работают:
$ ssh user@windowsmachine '"C:\Program Files\AutoHotkey\AutoHotkey.exe" C:\path\to\script.ahk'
$ ssh user@windowsmachine 'cmd.exe /c C:\path\to\script.ahk'
ОБНОВЛЕНИЕ: уловка почти работает. Например, он запускает calc.exe:
$ ssh user@windowsmachine calc.exe
Но если я запускаю notepad.exe или любое другое приложение, я вижу их в диспетчере задач, работающем как фоновые процессы, без графического интерфейса. (Я не знаю, что такого особенного в кальке. Отлично, что работает нормально). Мне также удалось исправить проблему с winexe, но ситуация абсолютно такая же, как с ssh - кроме calc.exe, все приложения с графическим интерфейсом запускаются как фоновые процессы. Эта проблема обсуждается здесь. Итак, суть в том, что для запуска приложений с графическим интерфейсом в Windows 10 с хоста Linux требуются огромные усилия. Поэтому я просто написал свое собственное маленькое клиент-серверное приложение в Qt 5, которое прослушивает определенный порт и запускает соответствующие приложения / сценарии, когда пользовательская команда получена от другого хоста.