• Как сделать доступ в Интернет только из виртуальной машины в ноутбуке с Windows 11 через встроенный модем LTE/4G?

    @DmitryRandom Автор вопроса
    инженер-электронщик-программист
    Georgy Goshin, не представляю, как PCI(e) передать в VirtualBox (не спорю, просто не знаю).

    hint000, вы правы, это USB

    USB\VID_1199&PID_9075&MI_00 (LTE-A DM Port)
    USB\VID_1199&PID_9075&MI_02 (LTE-A NMEA Port)
    USB\VID_1199&PID_9075&MI_03 (AT Command Port) Modem
    USB\VID_1199&PID_9075&MI_0C (LTE-A WWAN Network Adapter)

    Перебросить получилось как обычное устройство USB, но, увы, драйверов для Win7 найти не удалось, а драйвера из хостовой Win11 не подключаются даже с отключенной проверкой подписи.
    В установочных сборках с сайта производителя модема этой модели не оказалось, а похожие хоть и стали, но не работают: модем не отвечает на АТ-команды, адаптер сети винда распознаёт как Ethernet с неподключенным кабелем.

    На гостевых Win10 и Win11 все драйвера стали, но модем запустить тоже не удалось: Код 10. Запуск этого устройства невозможен. (LTE-A WWAN Network Adapter)
    Ответ написан
    Комментировать
  • Как отправить команду пользовательского интерфейса в [любой] процесс Windows?

    @DmitryRandom Автор вопроса
    инженер-электронщик-программист
    Нашёл решение без использования сторонних программ (для GUI WinAPI). Это системное средство автоматизации от Microsoft, имеющееся в Windows — PowerShell.

    Вот демонстрационный пример эмуляции ввода с клавиатуры, в котором в работающем Калькуляторе (старая версия MS от 2004 года) включается Инженерный вид и вычисляется арксинус от 0,5 (результат — 30 градусов).

    файл test.ps1
    $wshell = New-Object -ComObject wscript.shell;
    Sleep 1
    $wshell.AppActivate('Калькулятор Плюс')
    Sleep 1
    $wshell.SendKeys("%")
    Sleep 1
    $wshell.SendKeys("{RIGHT}")
    Sleep 1
    $wshell.SendKeys("{DOWN}")
    Sleep 1
    $wshell.SendKeys("{DOWN}")
    Sleep 1
    $wshell.SendKeys("{ENTER}")
    Sleep 1
    $wshell.SendKeys(".5")
    Sleep 1
    $wshell.SendKeys("is")
    Sleep 9

    Для запуска неподписанного скрипта надо запустить PowerShell с ключом отключения проверки подписи (можно сделать пакетный файл):
    PowerShell.exe -ExecutionPolicy Bypass -File test.ps1

    Аналогично можно сделать управление мышью.

    Источники:
    Эмуляция нажатия клавиш в PowerShell
    Отключение запрета выполнения скриптов в PowerShell
    Перемещение мыши в PowerShell
    Перемещение и нажатие кнопок мыши в PowerShell
    Кликание в конкретные объекты в PowerShell
    Ответ написан
    Комментировать