gpt4 book ai didi

powershell, send key() 和 appactivate() 奇怪

转载 作者:行者123 更新时间:2023-12-03 00:27:14 27 4
gpt4 key购买 nike

我有一个登录 powershell 脚本。作为脚本的一部分,它启动一个应用程序,然后等待 4 秒以等待计算机 catch ,然后发送一些击键。

$deviceID = "123xyz"
invoke-item ("C:\myapp")
...
$myshell = New-Object -com "Wscript.Shell"
start-sleep -s 4
$myshell.AppActivate("myapp");$myshell.sendkeys("1");$myshell.sendkeys("{TAB}");$myshell.sendkeys("$deviceID");$myshell.sendkeys("{ENTER}")

它工作得很好,除非用户在登录期间单击任何地方。如果他们这样做了,应用程序永远不会获得击键,并且应用程序会在任务栏中闪烁。

似乎 AppActivate() 似乎并没有真正起作用。有人对此有任何意见吗?

最佳答案

您需要确保应用程序是前台窗口。 PowerShell Community Extensions有一个 Set-ForegroundWindow cmdlet 可以帮助解决这个问题:

Add-Type -AssemblyName System.Windows.Forms
$proc = Get-Process notepad
Set-ForegroundWindow $proc.MainWindowHandle
Start-Sleep -Seconds 2 # Just so you can see the window before it closes :-)
[Windows.Forms.SendKeys]::SendWait('%{F4}')

这是使用 PowerShell V2 的 Add-Type cmdlet。另请注意,SendKeys 在 .NET 中可用。

关于powershell, send key() 和 appactivate() 奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911195/

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