Título: Hacer un menú sencillo con este Script
Publicado por: Meta en 19 Noviembre 2017, 07:22 am
Hola a todos y a todas: Quiero hacer un menú sencillo que las funciones se hará después. Por ahora he hecho esto de esta manera haciendo pruebas. ╔====================================╗ ║ Control bandeja del lector ║ ╠====================================╣ ║ ║ 1) Primera Opción 2) Segunda Opción 3) Tercera Opción S) Presiona 'S' para salir Elegir una Opción: Como puedes ver, pulso el número 2), luego Enter para poder entrar en el menú. Mi idea es, desde que pulses la tecla número 2), entre directamente a la Segunda opción sin tener que pulsar Enter. { param ( [string]$Titulo = ' Control bandeja del lector ' ) cls Write-Host "╔====================================╗" Write-Host "║ $Titulo ║" Write-Host "╠====================================╣" Write-Host "║ ║"
Write-Host "1) Primera Opción" Write-Host "2) Segunda Opción" Write-Host "3) Tercera Opción" Write-Host "S) Presiona 'S' para salir" }
do { mostrarMenu $input = Read-Host "Elegir una Opción" switch ($input) { '1' { cls 'Primera Opción' } '2' { cls 'Segunda Opción' } '3' { cls 'Tercera Opción' } 's' { return } } pause } until ($input -eq 's') ¿Cómo se hace lo que quiero? Saludos.
Título: Re: Hacer un menú sencillo con este Script
Publicado por: Meta en 20 Noviembre 2017, 15:41 pm
Buenas: He mejorado el ménú y puedo abrir la bandeja del disco, pero no me se el código de cerrar la bandeja. function mostrarMenu { param ( [string]$Titulo = ' Control bandeja del lector ' ) cls Write-Host "╔====================================╗" Write-Host "║ $Titulo ║" Write-Host "╠====================================╣" Write-Host "║ ║" Write-Host "║ 1) Abrir. ║" Write-Host "║ 2) Cerrar. ║" Write-Host "║ 3) Información. ║" Write-Host "║ S) Presiona 'S' para salir. ║" Write-Host "║ ║" Write-Host "╚====================================╝" } do { mostrarMenu Write-Host "" $input = Read-Host " Elegir una Opción." switch ($input) { '1' { cls 'Abriendo...' $items = (New-Object -com "WMPlayer.OCX.7").cdromcollection.item(0) $items.eject() 'Abierto.' Write-Host "" } '2' { cls 'Segunda Opción' } '3' { cls 'Información.' } 's' { return } } pause } until ($input -eq 's')
¿Cuál es el código para cerrar el disco? Gracias.
Título: Re: Hacer un menú sencillo con este Script
Publicado por: tincopasan en 21 Noviembre 2017, 00:37 am
la verdad es que no tengo idea que lenguaje estas usando, pero lo primero que se me ocurre es usar básicamente lo mismo que para abrir, pero intentando con lo mas común para cerrar: $items = (New-Object -com "WMPlayer.OCX.7").cdromcollection.item(0) $items.close()
Título: Re: Hacer un menú sencillo con este Script
Publicado por: Meta en 21 Noviembre 2017, 01:07 am
Lo he probado y no funciona. Pero no se ma había ocurrido. ;) Tampoco este. $items.closed()
Saludos.
Título: Re: Hacer un menú sencillo con este Script
Publicado por: Meta en 22 Noviembre 2017, 14:20 pm
Hola: Ya he sido capaz de abrir y cerrar la bandeja con PowerShell. LA fomra como es el menú no me hace gracia. Hay que pulsar una letra, luego Enter y después Enter para pulsar otra tecla más para cerra la bandeja. Mi idea es que al pulsar la letra A o a, Abra la bandeja y preparado para que pulses otra letra. Nada de pulsar la A y luego Enter, para luego otra vez Enter. Si saben hacerlo mejor, avisen. De momento aquí funciona, es capaz de abrir y cerrara la bandeja. $MemDef = @" [DllImport("winmm.dll", CharSet = CharSet.Ansi)] public static extern int mciSendStringA( string lpstrCommand, string lpstrReturnString, int uReturnLength, IntPtr hwndCallback); "@ $winnm = Add-Type -memberDefinition $MemDef -ErrorAction 'SilentlyContinue' -passthru -name mciSendString function Set-CDAudioDoor { Param( [ValidateSet("open", "closed")][String[]]$Mode = 'open' ) $winnm::mciSendStringA("set cdaudio door $mode", $null, 0,0)} function mostrarMenu { param ( [string]$Titulo = ' Control bandeja del lector ' ) cls Write-Host "╔====================================╗" Write-Host "║ $Titulo ║" Write-Host "╠====================================╣" Write-Host "║ ║" Write-Host "║ A) Abrir. ║" Write-Host "║ C) Cerrar. ║" Write-Host "║ I) Información. ║" Write-Host "║ S) Presiona 'S' para salir. ║" Write-Host "║ ║" Write-Host "╚====================================╝" } do { mostrarMenu $input = Read-Host " Elegir una Opción" switch ($input) { 'a' { cls 'Abriendo...' Set-CDAudioDoor open 'Abierto.' ' ' } 'c' { cls 'Cerrando...' Set-CDAudioDoor closed 'Cerrado.' } 'i' { cls 'PowerShell' '==========' Get-Host } 's' { return } } pause } until ($input -eq 's')
Saludos.
|