谁能告诉我怎么点击“OK”或“取消”的弹出窗口上使用PowerShell? 我试图自动化使用PowerShell一个网站,但我是新来的PowerShell。 我必须点击OK按钮,在弹出框中进行。 我知道VBScript中,在我可以使用
set obj0 = createobject("wscript.shell")
count = 0
do while count = 0
if obj0.appactivate "Popupboxname" then
----perform required action---
count = 1
else
wscript.sleep(2000)
end if
loop
谁能告诉我该怎么做在PowerShell中的一样吗? 如果我能以某种方式访问该弹出式窗口,至少我可以用SendKeys命令发送回车键。 请让我知道如何处理弹出窗口。 提前致谢。
使用PowerShell V2可以使用的PInvoke访问正常的Win32 API,从而使您可以访问FindWindow
和SetForegroundWindow
。 然后使用SendKeys
发送一个Enter
键。
像这样注册的方法:
$pinvokes = @'
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr FindWindow(string className, string windowName);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
'@
Add-Type -AssemblyName System.Windows.Forms
Add-Type -MemberDefinition $pinvokes -Name NativeMethods -Namespace MyUtils
现在,你可以找到你需要的窗口:
$hwnd = [MyUtils.NativeMethods]::FindWindow(null, "Popupboxname")
给它重点:
[MyUtils.NativeMethods]::SetForegroundWindow($hwnd)
并发送Enter
键:
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
来源/启示:
- 电源外壳:如何发送鼠标点击?
- http://poshcode.org/1837
- http://www.tek-tips.com/viewthread.cfm?qid=1563429
你可能想从CodePlex上investige的WASP管理单元:
http://wasp.codeplex.com/wikipage?title=Some%20Usage%20Examples&referringTitle=Home