
현재 비즈니스 프로세스 자동화 소프트웨어를 개발 중이며 문자 그대로 사용자 작업이 로봇에 의해 시뮬레이션됩니다. 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()