
Actualmente estoy trabajando en un software de automatización de procesos comerciales y, literalmente, las acciones del usuario son simuladas por robots. Necesito pasar información al menú de inicio de mi Windows 7 y me preguntaba si el menú de inicio de Windows se podría abrir usando un script de PowerShell. Ya que los robots pueden entender la información para abrir un PowerShell. Por favor, cualquier sugerencia sería buena.
Respuesta1
Sí, es posible utilizar unpequeño VB.
Copie este código en el Bloc de notas y guárdelo como startmenu.vbs
. [Asegúrate de quenoguardarse como startmenu.vbs.txt]
set wShell=wscript.createobject("wscript.shell")
wShell.sendkeys "^{ESC}"
Set WshShell = Nothing
Luego, puedes simplemente ejecutarlo con cscript C:\somefilepath\startmenu.vbs
.
(Obviamente, tendrás que especificar la ruta donde lo guardas)
O, traducido a unPotencia Shellsolución:
$wShell = New-Object -ComObject "wscript.shell"
$wShell.SendKeys("^{ESC}")
Que se puede reducir aún más a:
(New-Object -ComObject "wscript.shell").SendKeys("^{ESC}")
Respuesta2
Esta es una solución un poco más detallada que no emula las pulsaciones de teclas (para los casos en los que CTRL+ESC está vinculado a otro 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()