Powershell을 사용하여 시작 메뉴 열기

Powershell을 사용하여 시작 메뉴 열기

현재 비즈니스 프로세스 자동화 소프트웨어를 개발 중이며 문자 그대로 사용자 작업이 로봇에 의해 시뮬레이션됩니다. Windows 7의 시작 메뉴에 일부 정보를 전달해야 하는데 Powershell 스크립트를 사용하여 Windows 시작 메뉴를 열 수 있는지 궁금합니다. Powershell을 여는 정보는 로봇이 이해할 수 있습니다. 어떤 제안이라도 좋을 것입니다.

답변1

예, 다음을 사용하면 가능합니다.작은 VB.

이 코드를 메모장에 복사하고 startmenu.vbs. [확실히 해봐그렇지 않다startmenu.vbs.txt로 저장]

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

그런 다음 cscript C:\somefilepath\startmenu.vbs.

(물론 저장할 경로를 지정해야 합니다)


또는 다음과 같이 번역됩니다.파워셸해결책:

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

다음과 같이 더 단축할 수 있습니다.

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

답변2

이는 키 누르기를 에뮬레이트하지 않는 약간 더 장황한 솔루션입니다(CTRL+ESC가 다른 프로그램/명령 등에 바인딩된 경우).

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()

관련 정보