Abra o menu iniciar usando Powershell

Abra o menu iniciar usando Powershell

Atualmente estou trabalhando em um software de automação de processos de negócios e literalmente as ações do usuário são simuladas por robôs. Preciso passar algumas informações para o menu iniciar do meu windows 7 e queria saber se o menu iniciar do windows poderia ser aberto usando um script do PowerShell? Como as informações para abrir um PowerShell podem ser entendidas pelos robôs. Por favor, qualquer sugestão seria legal.

Responder1

Sim, é possível usar umpequeno VB.

Copie este código no Bloco de Notas e salve como arquivo startmenu.vbs. [Certifique-senãoseja salvo como startmenu.vbs.txt]

set wShell=wscript.createobject("wscript.shell")
wShell.sendkeys "^{ESC}"
Set WshShell = Nothing

Então, você pode simplesmente executá-lo com cscript C:\somefilepath\startmenu.vbs.

(Obviamente, você terá que especificar o caminho onde irá salvá-lo)


Ou, traduzido para umPowershellsolução:

$wShell = New-Object -ComObject "wscript.shell"
$wShell.SendKeys("^{ESC}")

Que pode ser ainda mais abreviado para:

(New-Object -ComObject "wscript.shell").SendKeys("^{ESC}")  

Responder2

Esta é uma solução um pouco mais detalhada que não emula o pressionamento de teclas (para casos em que CTRL+ESC está vinculado a outro programa/comando, etc.).

Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;

public class Win32API
{
    [DllImport("user32.dll")]    
    private static extern IntPtr FindWindow(string lpClassName, String lpWindowName);    
    [DllImport("user32.dll")]    
    private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);  

    public static void OpenStartMenu ()
    {
        const int SC_TASKLIST = 0xf130;
        const int WM_SYSCOMMAND = 0x112;
        IntPtr hWnd = FindWindow("Shell_TrayWnd", "");
        SendMessage(hWnd, WM_SYSCOMMAND, SC_TASKLIST, 0);
    }
}
"@
[Win32API]::OpenStartMenu()

informação relacionada