gpt4 book ai didi

powershell - 如何在powershell中执行击键?

转载 作者:行者123 更新时间:2023-12-03 09:08:05 25 4
gpt4 key购买 nike

我有 ps1 脚本可以从 vmware 集群环境中获取一些信息。

在 ps1 脚本的某些地方需要 输入 按钮击键。

那么,如何做到这一点?

-谢谢

最佳答案

如果我理解正确,您希望 PowerShell 发送 输入 某些交互式应用程序的按键?

$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('title of the application window')
Sleep 1
$wshell.SendKeys('~')

如果该交互式应用程序是 PowerShell 脚本,只需使用 PowerShell 窗口标题栏中的任何内容作为 的参数即可。应用激活 (默认情况下,powershell.exe 的路径)。为避免歧义,您可以使用 title 'new window title' 让您的脚本重新命名自己的窗口。命令。

一些注意事项:
  • 波浪号 (~) 代表 输入 击键。您也可以使用 {ENTER} ,尽管它们并不相同 - 那是键盘的 输入 key 。完整列表可在此处获得:http://msdn.microsoft.com/en-us/library/office/aa202943%28v=office.10%29.aspx .
  • Sleep 1的原因语句是等待 1 秒,因为窗口激活需要一点时间,如果您调用 发送 key 立即,它会将 key 发送到 PowerShell 窗口,或者发送到任何地方。
  • 请注意,如果您在等待期间键入任何内容或单击鼠标,这可能会被绊倒,从而阻止您使用 激活窗口。应用激活 从活跃。您可以尝试减少时间以找到在您的系统上足够可靠的最小值( Sleep 接受小数,因此您可以尝试 0.5 半秒)。我发现在我的 2.6 GHz Core i7 Win7 笔记本电脑上,任何小于 0.8 秒的故障率都很高。我用 1 秒来确保安全。
  • 重要警告:如果您使用此方法发送密码,请格外小心,因为在调用 之间激活不同的窗口。应用激活 并调用 发送 key 将导致密码以纯文本形式发送到那个不同的窗口!

  • 有时 wscript.shell 发送 key 方法可能有点古怪,因此如果遇到问题,请将上面的第四行替换为:
    Add-Type -AssemblyName System.Windows.Forms
    [System.Windows.Forms.SendKeys]::SendWait('~');

    关于powershell - 如何在powershell中执行击键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17849522/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com