Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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
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
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

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

[code]shell "netstat >Salida.Txt",vbhide

Meter el resultado en el block de notas
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:

CitarPrivate 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:??


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
CitarPero 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