使用Power Shell脚本关闭对话框

时间:2018-07-03 14:52:09

标签: powershell

我正在使用Powershell脚本调用.exe文件,如下所示。

cmd.exe /c "C:\Users\Desktop\SomeExecutable.exe password:ABCD123"

enter image description here 密码正确时,可执行文件将平稳运行。 密码错误时,会弹出消息提示密码错误。

出现弹出消息时,PowerShell脚本将一直等到用户关闭弹出消息。 enter image description here

我要以编程方式关闭此弹出消息。

您能否阐明如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以为此目的使用Windows API,如下所示:

http://www.codeproject.com/Articles/22257/Find-and-Close-the-Window-using-Win-API

您也可以为此使用powershell:

Add-Type -Name ConsoleUtils -Namespace WPIA -MemberDefinition @'
[DllImport("user32.dll")]
    public static extern int FindWindow(string lpClassName,string lpWindowName);
    [DllImport("user32.dll")]
    public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);

    public const int WM_SYSCOMMAND = 0x0112;
    public const int SC_CLOSE = 0xF060;

'@
#find console window with tile "QlikReload" and close it. 

[int]$handle = [WPIA.ConsoleUtils]::FindWindow('ConsoleWindowClass','QlikReload')
if ($handle -gt 0)
{
   [void][WPIA.ConsoleUtils]::SendMessage($handle, [WPIA.ConsoleUtils]::WM_SYSCOMMAND, [WPIA.ConsoleUtils]::SC_CLOSE, 0)
}