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)
| | | | |-+  Obtener retorno de aplicacion de consola
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener retorno de aplicacion de consola  (Leído 2,090 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Obtener retorno de aplicacion de consola
« en: 13 Agosto 2007, 23:37 pm »

buenas se que con visual b es imposible pero quizas aya alguna forma con apis, para obtener el retorno, yo conozco una forma pero esta me muestra los resultados finales pero no todo el proceso, osea si yo pongo en el CMD netstat -a -b me muestra todo el proceso a medidas que se va ejecutando, pues el modulo que tengo llo solo me muestra cuando todo el proceso finalizo.

Bien alguien tiene algun modulo o clase para mostrar toda la operacion en proceso.


Saludos


En línea

wACtOr


Desconectado Desconectado

Mensajes: 461


Premio finalista diseño web elhacker.net


Ver Perfil
Re: Obtener retorno de aplicacion de consola
« Respuesta #1 en: 14 Agosto 2007, 01:30 am »

no estoy mu puesto en el tema de consolas msdos y vb, pero creo que es algo de pipes, que aun no estoy muy enterao  :P :P, aunque creo que eso ya lo sabras xDD


En línea

DrakoX

Desconectado Desconectado

Mensajes: 191



Ver Perfil
Re: Obtener retorno de aplicacion de consola
« Respuesta #2 en: 14 Agosto 2007, 01:40 am »

aca tenes un muy lindo code,
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=61262&lngWId=1


salu2 y suerte
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Obtener retorno de aplicacion de consola
« Respuesta #3 en: 14 Agosto 2007, 01:50 am »

Imposible no es xDD usa la api CreatePipe  :xD :xD ejemplo de la api guide:

Código
  1. 'Redirects output from console program to textbox.
  2. 'Requires two textboxes and one command button.
  3. 'Set MultiLine property of Text2 to true.
  4. '
  5. 'Original bcx version of this program was made by
  6. ' dl <dl@tks.cjb.net>
  7. 'VB port was made by Jernej Simoncic <jernej@isg.si>
  8. 'Visit Jernejs site at http://www2.arnes.si/~sopjsimo/
  9. '
  10. 'Note: don't run plain DOS programs with this example
  11. 'under Windows 95,98 and ME, as the program freezes when
  12. 'execution of program is finnished.
  13.  
  14. Option Explicit
  15. Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
  16. Private Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO)
  17. Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
  18. Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
  19. Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
  20. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  21. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  22.  
  23. Private Type SECURITY_ATTRIBUTES
  24.  nLength As Long
  25.  lpSecurityDescriptor As Long
  26.  bInheritHandle As Long
  27. End Type
  28.  
  29. Private Type PROCESS_INFORMATION
  30.  hProcess As Long
  31.  hThread As Long
  32.  dwProcessId As Long
  33.  dwThreadId As Long
  34. End Type
  35.  
  36. Private Type STARTUPINFO
  37.  cb As Long
  38.  lpReserved As Long
  39.  lpDesktop As Long
  40.  lpTitle As Long
  41.  dwX As Long
  42.  dwY As Long
  43.  dwXSize As Long
  44.  dwYSize As Long
  45.  dwXCountChars As Long
  46.  dwYCountChars As Long
  47.  dwFillAttribute As Long
  48.  dwFlags As Long
  49.  wShowWindow As Integer
  50.  cbReserved2 As Integer
  51.  lpReserved2 As Byte
  52.  hStdInput As Long
  53.  hStdOutput As Long
  54.  hStdError As Long
  55. End Type
  56.  
  57. Private Type OVERLAPPED
  58.    ternal As Long
  59.    ternalHigh As Long
  60.    offset As Long
  61.    OffsetHigh As Long
  62.    hEvent As Long
  63. End Type
  64.  
  65. Private Const STARTF_USESHOWWINDOW = &H1
  66. Private Const STARTF_USESTDHANDLES = &H100
  67. Private Const SW_HIDE = 0
  68. Private Const EM_SETSEL = &HB1
  69. Private Const EM_REPLACESEL = &HC2
  70.  
  71. Private Sub Command1_Click()
  72.  Command1.Enabled = False
  73.  Redirect Text1.Text, Text2
  74.  Command1.Enabled = True
  75. End Sub
  76. Private Sub Form_Load()
  77.    Text1.Text = "ping"
  78. End Sub
  79. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  80.  If Command1.Enabled = False Then Cancel = True
  81. End Sub
  82.  
  83. Sub Redirect(cmdLine As String, objTarget As Object)
  84.  Dim i%, t$
  85.  Dim pa As SECURITY_ATTRIBUTES
  86.  Dim pra As SECURITY_ATTRIBUTES
  87.  Dim tra As SECURITY_ATTRIBUTES
  88.  Dim pi As PROCESS_INFORMATION
  89.  Dim sui As STARTUPINFO
  90.  Dim hRead As Long
  91.  Dim hWrite As Long
  92.  Dim bRead As Long
  93.  Dim lpBuffer(1024) As Byte
  94.  pa.nLength = Len(pa)
  95.  pa.lpSecurityDescriptor = 0
  96.  pa.bInheritHandle = True
  97.  
  98.  pra.nLength = Len(pra)
  99.  tra.nLength = Len(tra)
  100.  
  101.  If CreatePipe(hRead, hWrite, pa, 0) <> 0 Then
  102.    sui.cb = Len(sui)
  103.    GetStartupInfo sui
  104.    sui.hStdOutput = hWrite
  105.    sui.hStdError = hWrite
  106.    sui.dwFlags = STARTF_USESHOWWINDOW Or STARTF_USESTDHANDLES
  107.    sui.wShowWindow = SW_HIDE
  108.    If CreateProcess(vbNullString, cmdLine, pra, tra, True, 0, Null, vbNullString, sui, pi) <> 0 Then
  109.      SetWindowText objTarget.hwnd, ""
  110.      Do
  111.        Erase lpBuffer()
  112.        If ReadFile(hRead, lpBuffer(0), 1023, bRead, ByVal 0&) Then
  113.          SendMessage objTarget.hwnd, EM_SETSEL, -1, 0
  114.          SendMessage objTarget.hwnd, EM_REPLACESEL, False, lpBuffer(0)
  115.          DoEvents
  116.        Else
  117.          CloseHandle pi.hThread
  118.          CloseHandle pi.hProcess
  119.          Exit Do
  120.        End If
  121.        CloseHandle hWrite
  122.      Loop
  123.      CloseHandle hRead
  124.    End If
  125.  End If
  126. End Sub
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Obtener retorno de aplicacion de consola
« Respuesta #4 en: 14 Agosto 2007, 03:37 am »

Gracias E0N!! joya no avia visto el ejemplo del apiguide. funciona tal como queria, el DrakoX tambien esta bueno, pero es un poquito mas largo.

Muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
vb en aplicacion consola
.NET (C#, VB.NET, ASP)
chrisstine2975 5 5,937 Último mensaje 21 Mayo 2012, 07:01 am
por chrisstine2975
Salir de una aplicacion de consola
.NET (C#, VB.NET, ASP)
MaNuLoki 4 13,612 Último mensaje 24 Octubre 2014, 04:09 am
por Eleкtro
Aplicacion de Consola C# - Programa Pilas « 1 2 »
.NET (C#, VB.NET, ASP)
Castiel 10 16,438 Último mensaje 3 Agosto 2016, 05:58 am
por El Benjo
[RESUELTO] Condiciones en C# [Aplicacion de consola]
.NET (C#, VB.NET, ASP)
laut3n 2 3,121 Último mensaje 25 Febrero 2015, 16:39 pm
por laut3n
Obtener retorno de consola en un tetxtbox o richtext. Ayuda
Programación Visual Basic
Fucko 1 1,638 Último mensaje 29 Mayo 2021, 23:02 pm
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines