Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: dimitrix en 21 Enero 2007, 18:48 pm



Título: mantener consola
Publicado por: dimitrix en 21 Enero 2007, 18:48 pm
Hola, haber si me explico, necesito manterner la consola, por ejemplo si pongo el codigo:
Shell "netstat"
Que cuando termine no se cierre


Título: Re: mantener consola
Publicado por: soplo en 21 Enero 2007, 18:57 pm
Primero declaramos la función en declaraciones
Código:
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Ahora cuando necesites en ese formulario ejecutas
Código:
sub command1_click()
dim res as long
res = ShellExecute(Me.hwnd, "Open", "c:\windows\system32\netstat.exe","", "", 1)
end sub


Título: Re: mantener consola
Publicado por: dimitrix en 21 Enero 2007, 19:01 pm
Sorry soplo pero se cierra


Título: Re: mantener consola
Publicado por: soplo en 21 Enero 2007, 19:03 pm
Acabo de ver que eso tampoco vale porque también se cierra.

Supongo que debes guardar el resultado en un archivo y conservar el archivo

Código:
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Ahora ejecutar el netstat sabiendo que se cerrará, pero guardando el resultado en un archivo

Código:
[code]shell "netstat >Salida.Txt",vbhide

Meter el resultado en el block de notas
Código:
sub command1_click()
dim res as long
res = ShellExecute(Me.hwnd, "Open", "salida.txt","", "", 1)
end sub
[/code]


Título: Re: mantener consola
Publicado por: dimitrix en 21 Enero 2007, 19:10 pm
Pero donde coloco el:

shell "netstat >Salida.Txt",vbhide

Yo lo pongo así y no funciona:

Citar
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
   
   

Sub command1_click()
Dim res As Long
res = ShellExecute(Me.hwnd, "Open", "salida.txt", "", "", 1)
End Sub



Título: Re: mantener consola
Publicado por: Syphroot en 22 Enero 2007, 01:52 am
Has intentado algo asi:??

Código:
Shell "cmd /k netstat", vbNormal

Creo tambien se puede con la api ShellExecute


Título: Re: mantener consola
Publicado por: soplo en 22 Enero 2007, 22:21 pm
Citar
Pero donde coloco el:

shell "netstat >Salida.Txt",vbhide
Pues donde quieras ejecutar el netstat. Eso lo que hace es ejecutarlo sin mostrar nada, pero deja el resultado en un archivo llamado salida.txt

Cuando quieres mostrar eso lo que haces es sacar el block de notas con ello.


Título: Re: mantener consola
Publicado por: dimitrix en 22 Enero 2007, 22:50 pm
Ok, gracias :D

De todas formas, como el refran dice, si no sabes hacerlo de una manera hazlo de otra (a lo cutre)
http://foro.elhacker.net/index.php/topic,157519.0.html