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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Simulación de consola en VB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Simulación de consola en VB  (Leído 3,820 veces)
aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Simulación de consola en VB
« en: 12 Junio 2008, 17:25 pm »

Hola. Quería saber si alguien conoce un método para simular la consola de Windows en VB, de modo que haya que introducir el comando, pulsar Enter y que que grabado en la pantalla lo escrito.

Gracias de antemano.


En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Simulación de consola en VB
« Respuesta #1 en: 12 Junio 2008, 17:35 pm »

Infórmate sobre las apis de familia de AllocConsole, WriteConsole, ReadConsole, etc y luego con unos pipes simulas la entrada/salida de la consola

Salu2


En línea

aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: Simulación de consola en VB
« Respuesta #2 en: 12 Junio 2008, 17:51 pm »

Gracias por responder, pero lo que a mí me interesa es que se escriban los comandos desde una ventana creada en VB, es decir, dentro de un TextBox o algo parecido.
En línea

Xerok1!

Desconectado Desconectado

Mensajes: 228



Ver Perfil
Re: Simulación de consola en VB
« Respuesta #3 en: 12 Junio 2008, 19:03 pm »

Pues es a eso a lo que te ha contestado E0N,busca un poco que hay muchos ejemplos, Aquí te dejo uno que te irá perfecto, es el que uso siempre...Aprovechalo ;) ;)

Código
  1. Public Declare Function CreatePipe Lib "kernel32" ( _
  2.          phReadPipe As Long, _
  3.          phWritePipe As Long, _
  4.          lpPipeAttributes As Any, _
  5.          ByVal nSize As Long) As Long
  6.  
  7.      'Leer Tunel
  8.      Public Declare Function ReadFile Lib "kernel32" ( _
  9.          ByVal hFile As Long, _
  10.          ByVal lpBuffer As String, _
  11.          ByVal nNumberOfBytesToRead As Long, _
  12.          lpNumberOfBytesRead As Long, _
  13.          ByVal lpOverlapped As Any) As Long
  14.  
  15.      'Esto lo usa la funcion CreateProcessA
  16.      Public Type SECURITY_ATTRIBUTES
  17.          nLength As Long
  18.          lpSecurityDescriptor As Long
  19.          bInheritHandle As Long
  20.      End Type
  21.  
  22.      'Esto lo usa la funcion CreateProcessA
  23.      Public Type STARTUPINFO
  24.          cb As Long
  25.          lpReserved As Long
  26.          lpDesktop As Long
  27.          lpTitle As Long
  28.          dwX As Long
  29.          dwY As Long
  30.          dwXSize As Long
  31.          dwYSize As Long
  32.          dwXCountChars As Long
  33.          dwYCountChars As Long
  34.          dwFillAttribute As Long
  35.          dwFlags As Long
  36.          wShowWindow As Integer
  37.          cbReserved2 As Integer
  38.          lpReserved2 As Long
  39.          hStdInput As Long
  40.          hStdOutput As Long
  41.          hStdError As Long
  42.      End Type
  43.  
  44.      'Esto lo usa la funcion CreateProcessA
  45.      Public Type PROCESS_INFORMATION
  46.          hProcess As Long
  47.          hThread As Long
  48.          dwProcessId As Long
  49.          dwThreadID As Long
  50.      End Type
  51.  
  52.      'Esta funcion lanza el proceso y
  53.      'devuelve sus datos a traves de PROCESS_INFORMATION
  54.      Public Declare Function CreateProcessA Lib "kernel32" ( _
  55.          ByVal lpApplicationName As Long, _
  56.          ByVal lpCommandLine As String, _
  57.          lpProcessAttributes As SECURITY_ATTRIBUTES, _
  58.          lpThreadAttributes As SECURITY_ATTRIBUTES, _
  59.          ByVal bInheritHandles As Long, _
  60.          ByVal dwCreationFlags As Long, _
  61.          ByVal lpEnvironment As Long, _
  62.          ByVal lpCurrentDirectory As Long, _
  63.          lpStartupInfo As STARTUPINFO, _
  64.          lpProcessInformation As PROCESS_INFORMATION) As Long
  65.  
  66.      'Cierra el tunel
  67.      Public Declare Function CloseHandle Lib "kernel32" ( _
  68.          ByVal hHandle As Long) As Long
  69.  
  70.      'Constantes necesarias para lo de antes
  71.      Public Const NORMAL_PRIORITY_CLASS = &H20&
  72.      Public Const STARTF_USESTDHANDLES = &H100&
  73.      Public Const STARTF_USESHOWWINDOW = &H1
  74.  
  75.  
  76.  
  77. Public Function CMD(ByVal Comando As String) As String
  78.          Dim proc As PROCESS_INFORMATION     'Informacion de CreateProcessA
  79.          Dim Ret As Long                     'Esto se usa para obtener el retorno de las
  80.                                              'funciones API
  81.          Dim start As STARTUPINFO            'Informacion de inicio para CreateProcessA
  82.  
  83.          Dim sa As SECURITY_ATTRIBUTES       'Atributos de seguridad para
  84.                                              'CreateProcessA
  85.          Dim hReadPipe As Long               'Lectura de Tunel
  86.          Dim hWritePipe As Long              'Escritura de Tunel
  87.          Dim lngBytesread As Long            'Cantidad de Bytes leidos
  88.          Dim strBuff As String * 256         'Buffer de lectura de tunel
  89.  
  90.          'Creamos el tunel...
  91.          sa.nLength = Len(sa)
  92.          sa.bInheritHandle = 1&
  93.          sa.lpSecurityDescriptor = 0&
  94.          Ret = CreatePipe(hReadPipe, hWritePipe, sa, 0)
  95.  
  96.          If Ret = 0 Then
  97.              'Si falla la creacion del tunel
  98.              CMD = "Fallo de Conexion con Proceso. Error: " & Err.LastDllError
  99.              Exit Function
  100.          End If
  101.  
  102.          'Lanzamos el interprete de comandos...
  103.          start.cb = Len(start)
  104.          start.dwFlags = STARTF_USESTDHANDLES Or STARTF_USESHOWWINDOW
  105.          start.hStdOutput = hWritePipe
  106.          start.hStdError = hWritePipe
  107.          'Buscar la ruta del CMD.exe y añadir /c y el comando
  108.          mCommand = Environ("COMSPEC") + " /c " + Comando
  109.          'Creamos el proceso usando la String mCommand de antes...
  110.          'y obtenemos RET para saber si se ha ejecutado
  111.          Ret& = CreateProcessA(0&, mCommand, sa, sa, 1&, _
  112.              NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)
  113.  
  114.          If Ret <> 1 Then
  115.              'si no se encuentra el comando...
  116.              CMD = "Archivo o Comando no encontrado"
  117.              Exit Function
  118.          End If
  119.  
  120.          'Cerramos el tunel
  121.          Ret = CloseHandle(hWritePipe)
  122.          mOutputs = ""
  123.  
  124.          'lo leemos
  125.          Do
  126.              Ret = ReadFile(hReadPipe, strBuff, 256, lngBytesread, 0&)
  127.              mOutputs = mOutputs & Left(strBuff, lngBytesread)
  128.          Loop While Ret <> 0
  129.  
  130.          'cerramos los Handles (controladores)
  131.          Ret = CloseHandle(proc.hProcess)
  132.          Ret = CloseHandle(proc.hThread)
  133.          Ret = CloseHandle(hReadPipe)
  134.  
  135.          'y hacemos que la funcion devuelva el resultado del comando a traves
  136.          ' de la string mOutputs
  137.          CMD = mOutputs
  138. MsgBox mOutputs
  139.      End Function
  140.  

Un saludo :D
En línea

[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]
aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: Simulación de consola en VB
« Respuesta #4 en: 12 Junio 2008, 20:29 pm »

Gracias. No había buscado lo suficiente.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
soft simulacion redes
Redes
ferminta 2 2,972 Último mensaje 19 Enero 2012, 15:41 pm
por ferminta
hilos simulacion
Java
bengy 3 3,201 Último mensaje 20 Julio 2012, 07:06 am
por leogtz
Simulación con Pspice
Electrónica
Constantinoplero 8 7,376 Último mensaje 11 Marzo 2013, 14:58 pm
por Constantinoplero
Duda con simulacion de un cirucito con TINA / EDISON 4
Electrónica
dito3 2 3,413 Último mensaje 30 Marzo 2013, 18:20 pm
por Firos
pagina de geo simulacion
Dudas Generales
marcasmal 5 3,390 Último mensaje 19 Noviembre 2014, 03:09 am
por Wickown
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines