закройте диалоговое окно с помощью скрипта Power Shell - PullRequest
0 голосов
/ 03 июля 2018

Я вызываю файл .exe, используя скрипт powershell, как показано ниже.

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

enter image description here Когда пароль правильный, исполняемый файл работает без сбоев. Если пароль неверный, появится всплывающее сообщение о неправильном пароле.

Когда появляется всплывающее сообщение, сценарий powershell ожидает, пока пользователь не закроет всплывающее сообщение. enter image description here

Я хочу программно закрыть это всплывающее сообщение.

Можете ли вы пролить свет на то, как этого добиться?

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете использовать 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)
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...