0

PowerShellを使用してポップアップウィンドウで「OK」または「キャンセル」をクリックする方法を教えてください。Powershell を使用して Web サイトを自動化しようとしていますが、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 コマンドを使用してエンター キーを送信できます。ポップアップウィンドウの扱い方を教えてください。前もって感謝します。

4

3 に答える 3

3

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}")

ソース/インスピレーション:

于 2013-04-15T14:51:13.210 に答える