如何通过脚本或任务计划程序自动连接到无线显示适配器?

如何通过脚本或任务计划程序自动连接到无线显示适配器?

我正在尝试将文件投影到带有 Windows 显示适配器的三星电视上。我想让整个过程自动化。因此,当电视打开时,我希望计算机不断检查显示适配器并自动连接。连接后,我已经将其投影到重复模式,通过运行另一个批处理文件显示文件。有人能建议我如何通过脚本或任务计划程序或 powershell 来做到这一点吗?

答案1

使用 Brisk 的答案,我能够想出一个适合我目的的解决方案。我的电脑在另一个房间,但距离足够近,我可以用无线键盘控制它。我有一个可以用作无线显示器的 Roku(我认为使用 MiraCast)。我希望能够将我的电脑连接到 Roku,而不必打开另一个房间的显示器并浏览菜单,只需立即将其关闭并回到卧室即可。

Brisk 答案中的代码是 Visual Basic,默认情况下可在任何 Windows 计算机上运行。您可能需要调整 Windows 的一些权限才能真正允许您运行它。不确定,因为我已经调整了一些 powershell 设置,以便按照本指南运行这些脚本: https://www.addictivetips.com/windows-tips/fix-running-scripts-is-disabled-on-this-system-powershell-on-windows-10/

编写脚本后,我创建了一个快捷方式来运行它:C:\Windows\System32\wscript.exe z:\Scripts\ConnectToRokuStick.vbs Windows 快捷方式可以在属性菜单中轻松分配键盘快捷键。所以现在我只需按 CTRL+ALT+P,这将激活快捷方式,运行脚本,并通过 Roku 将我的电脑连接到卧室电视。

下面是代码。将其保存在 .vbs 文件中,您可能需要将其保存为 ANSI 格式,而不是 UTF。请注意,从浏览器复制和粘贴代码有时会导致奇怪的非标准引号(“),这可能会导致 Visual Basic 编译器因无法识别的字符或其他语法错误而失败。如果是这样,只需删除它们并重新输入。没有必要像 Brisk 那样将其封装在 Sub 中。

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "%windir%\explorer.exe ms-settings-connectabledevices:devicediscovery"
Wscript.Sleep(1000)
objShell.SendKeys "+{Tab}"
objShell.SendKeys "{Tab}"
objShell.SendKeys "{Enter}"
Wscript.Sleep(1000)
objShell.SendKeys "RokuStick"
Wscript.Sleep(1000)
objShell.SendKeys "{Tab}"
objShell.SendKeys "{Enter}"
objShell.SendKeys "{Esc}"
objShell.SendKeys "{Esc}"

此代码使用带有参数的 shell 对象调用 Windows 资源管理器,该参数打开“连接到无线显示”菜单。这相当于在 Windows 10 上按 Windows + K。然后它将光标移动到搜索栏并输入“RokuStick”,这是我的设备的名称。它按 Enter 提交搜索,然后等待搜索完成(您可能需要增加更多时间)。然后它将光标向下移动到设备,按 Enter,然后关闭菜单。

答案2

Sub Connetti()

        'Wscript.Sleep(500)
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "%windir%\explorer.exe ms-settings-connectabledevices:devicediscovery"
        Wscript.Sleep(800)
        objShell.SendKeys "{Tab}"
        objShell.SendKeys "+{Tab}"
        objShell.SendKeys "{Enter}"
        Wscript.Sleep(1000)
        objShell.SendKeys "Toshiba-XXX"
        Wscript.Sleep(1000)
        objShell.SendKeys "{Tab}"
        Wscript.Sleep(1000)
        objShell.SendKeys "{Enter}"
        'objShell.SendKeys "{Tab}"
        'objShell.SendKeys "{Enter}"
        objShell.SendKeys "{Esc}"
        Wscript.Sleep(500)
        objShell.SendKeys "{Esc}"

End sub

相关内容