elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [DUDA] Se puede poner un "botón" en batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Se puede poner un "botón" en batch  (Leído 2,572 veces)
MDd2

Desconectado Desconectado

Mensajes: 65



Ver Perfil
[DUDA] Se puede poner un "botón" en batch
« en: 20 Febrero 2017, 22:41 pm »

Hola, muy buenas.
Estoy haciendo un trabajo para el instituto, sobre biología, pero pero para subir nota he creado un "programilla" en batch; el primer lenguaje que aprendí, bueno no os voy a contar mi vida...  :xD :xD 
La pregunta es si puedo hacer que al clickear sobre un texto, o algo, ejecute un comando. Más o menos como un botón.

No se si es posible.

Gracias de antemano.


En línea

# "No temo a los ordenadores; lo que temo es quedarme sin ellos"
-- Isaac Asimov
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: [DUDA] Se puede poner un "botón" en batch
« Respuesta #1 en: 20 Febrero 2017, 22:58 pm »

En todo caso si podrías hacerlo con VBScript bajo wscript que es la versión gráfica de este. Luego está csscript que es la versión de consola VBscript, pero vamos, que lo que te interesa es llamar a un batch desde vbscript o hacerlo todo en vbscript.

Un saludo.


En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: [DUDA] Se puede poner un "botón" en batch
« Respuesta #2 en: 22 Febrero 2017, 05:02 am »

No se si es posible.

No, no es posible con Batch. Es un lenguaje bastante primitivo que en la mayoría de escenarios ni tan siquiera se le puede considerar un lenguaje de programación, es más bien una herramienta limitada (muy limitada) para principiantes. Lo cierto es que más bien es un lenguaje enfocado a la automatización de tareas básicas de un usuaro normal y corriente, así que no le pidas mucho más al pobre Batch...

Como alternativa puedes construir una intefáz gráfica usando el lenguaje WinBatch, que se caracteriza por usar una mezcla de sintaxis entre Batch y VisualBasic Script.

Pero en mi opinión lo mejor es que si realmente necesitas hacer cosas extravagantes como esta entonces te vayas olvidando de Batch y optes por un lenguaje de alto nivel que te permita llevar a cabo este tipo de tarea de una forma encapsulada y abstracta, como por ejemplo C# o VB.NET. Eso sería una opción genial, ya que con los miembros del espacio de nombres System.Console puedes determinar la posición de la celda actual que se encuentra activa en el buffer de la consola, y con eso podrías intentar empezar a evaluar si se hizo click sobre una celda específica despues de haber obtenido la posición actual del mouse relativa a la ventana de la consola. En un principio suena tedioso, y debe serlo, ya que tienes que averiguar la longitud del texto y la posición actual dentro del buffer de salida de la consola, y también si ese texto está visible o no en el buffer, etc, pero con eso que te he dicho consigues obtener practicamente toda la información necesaría.

¡Un saludo!.



EDITO:

En todo caso si podrías hacerlo con VBScript bajo wscript que es la versión gráfica de este.

No, ojo con las cosas que das por asumido. WScript.exe solamente es un intérprete para evaluar código de VisualBasic Script (o VBS) y JScript (o javascript for Windows) entre otros varios (vease la lista de motores de lenguajes soportados por Windows Script Host en la Wikipedia) que corran en modo gráfico (o GUI). Y CScript.exe es la versión del intérprete en modo consola (o CLI), pero esta diferencia entre que exista una versión en modo GUI y otra en modo CLI no significa que con VBS por si solo puedas construir una GUI, pues VBS no provee absolutamente ningún control, ni CheckBoxes ni ListBoxes, ni nada de nada... solamente un "InputBox" y la capacidad para mostrar MessageBoxes.

Dicho esto, cabe mencionar que en VBS se puede instanciar el objeto COM InternetExplorer.Application para desarrollar una especie de GUI, pero esto es un procedimiento que genera un código resultante bastante engorroso y es una pérdida de tiempo por que basicamente lo que se está cosntruyendo es una aplicación HTML (puesto que se están consumiendo los controles que provee IE), y para ello hay una manera más sofisticada y más llevadera de construir ese tipo de GUI, lo cual daría como resultado un archivo con extensión .hta que puedes correr con el intérprete mshta.exe.



Ejemplo de una GUI HTA:

Script.hta
Código
  1. <title>HTA Test</title>
  2. <HTA:APPLICATION
  3.     APPLICATIONNAME="HTA Test"
  4.     SCROLL="yes"
  5.     SINGLEINSTANCE="yes"
  6.     WINDOWSTATE="maximize"
  7. >
  8. </head>
  9.  
  10. <script language="VBScript">
  11.    Sub TestSub
  12.        Msgbox "Testing 1-2-3."
  13.    End Sub
  14.  
  15. <input type="button" value="Run Script" name="run_button"  onClick="TestSub"><p>
  16.  
  17. </body>
Referencia al autor: https://technet.microsoft.com/en-us/library/ee692768.aspx

Ejemplo de una GUI VBS:

Script.vbs
Código
  1. Option Explicit
  2. Dim aOpt(4)
  3. aOpt(0) = "Option 1"
  4. aOpt(1) = "Option 2"
  5. aOpt(2) = "Option 3"
  6. aOpt(3) = "Option 4"
  7. aOpt(4) = "Option 5"
  8. wsh.echo "You selected:", SelectBox("Select an option", aOpt)
  9.  
  10. Function SelectBox(sTitle, aOptions)
  11. Dim oIE, s, item
  12.  set oIE = CreateObject("InternetExplorer.Application")
  13.  With oIE
  14.    .ToolBar   = False : .RegisterAsDropTarget = False
  15.    .StatusBar = False : .Navigate("about:blank")
  16.    While .Busy : WScript.Sleep 100 : Wend
  17.    With .document
  18.      With .parentWindow
  19.        if Instr(.navigator.appVersion, "MSIE 6") > 0 Then
  20.          oIE.FullScreen = True
  21.        End if
  22.        oIE.width = 400 : oIE.height = 150
  23.        oIE.left = .screen.width \ 2 - 200
  24.        oIE.top  = .screen.height\ 2 - 75
  25.      End With ' ParentWindow
  26.      s = "<html><head><title>" & sTitle & " " & String(80, ".") _
  27.        & "</title></head><script language=vbs>bWait=true</script>" _
  28.        & "<body bgColor=Silver><center><b>" & sTitle & "<b><p>" _
  29.        & "<select id=entries size=1 style='width:250px'>" _
  30.        & "  <option selected>" & sTitle & "</option>"
  31.      For each item in aOptions
  32.        s = s & "  <option>" & item & "</option>"
  33.      Next
  34.      s = s & "  </select><p>" _
  35.        & "<button id=but0 onclick='bWait=false'>OK</button>" _
  36.        & "</center></body></html>"
  37.      .WriteLn(s)
  38.      With .body
  39.        .scroll="no"
  40.        .style.borderStyle = "outset"
  41.        .style.borderWidth = "3px"
  42.      End With ' Body
  43.      .all.entries.focus
  44.      oIE.Visible = True
  45.      On Error Resume Next
  46.      While .ParentWindow.bWait
  47.        WScript.Sleep 100
  48.        if oIE.Visible Then SelectBox = "Aborted"
  49.        if Err Then Exit Function
  50.      Wend ' Wait
  51.      On Error Goto 0
  52.      With .ParentWindow.entries
  53.        SelectBox = .options(.selectedIndex).text
  54.      End With
  55.    End With ' document
  56.    .Visible = False
  57.  End With   ' IE
  58. End Function
Referencia al autor: https://social.technet.microsoft.com/Forums/scriptcenter/en-US/63802c32-fec3-4d83-8036-b37f46d3fe75/gui-for-vbs?forum=ITCG

¡Saludos!
« Última modificación: 22 Febrero 2017, 05:59 am por Eleкtro » En línea



z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: [DUDA] Se puede poner un "botón" en batch
« Respuesta #3 en: 22 Febrero 2017, 10:26 am »

Cierto es Elektro, me muerdo la lengua.

Entonces, lo que a este usuario le interesa es hacer algo en HTA, que suerte estar bajo Windows, con un notepad te puedes hacer un programa sencillo.

Un saludo.
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: [DUDA] Se puede poner un "botón" en batch
« Respuesta #4 en: 22 Febrero 2017, 11:07 am »

con un notepad te puedes hacer un programa sencillo.

Desde un buscaminas hasta un ARK si te pones una tardecita entera ...¿he!!?. :rolleyes:
En línea



z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: [DUDA] Se puede poner un "botón" en batch
« Respuesta #5 en: 22 Febrero 2017, 11:26 am »

Desde un buscaminas hasta un ARK si te pones una tardecita entera ...¿he!!?. :rolleyes:

Ups :-[ :-[ JAJAJAJAJAJAJA y un fabricador de billetes que tal? :xD Hay optimizarle el garbage collector y aumentarle el heap size :laugh: :laugh: :laugh:

 ;D ;D ;D ;D ;D ;D :xD :xD
En línea


Interesados hablad por Discord.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines