Hola quisiera saber como crear una consola con el estilo de turbo c, con colores, que al rpecioinar un texto me lleve a otra parte, etc y si no es en visual basic 2008, en que otro programa puede ser, agradecido, fernando...
en visual basic 6 no puedes ya que solo crea aplicaciones GUI.
en vb8 puedes usar colores con Console.BackgroundColor o Console.ForegroundColor aunque esto te cambia el color completo tal como lo hace el comando "color".
Para crear menus y esas cosas no lo se porque en c++ se utiliza la librería conio.h pero no se si habrá alguna adaptación para vb.net
Ahora, encontré un pequeño ejemplo googleando:
ConsoleColor.vb
Option
Explicit On
Option Strict On
Imports System.Runtime.InteropServices
Imports Win32.Kernel32.ConsoleColor
Namespace Win32.Kernel32
Class ConsoleColor
Public Enum ForegroundColors
Black = 0
Blue = 1
Green = 2
Cyan = Blue Or Green
Red = 4
Magenta = Blue Or Red
Yellow = Green Or Red
White = Blue Or Green Or Red
Gray = 8
LightBlue = Gray Or Blue
LightGreen = Gray Or Green
LightCyan = Gray Or Cyan
LightRed = Gray Or Red
LightMagenta = Gray Or Magenta
LightYellow = Gray Or Yellow
BrightWhite = Gray Or White
End Enum
Public Enum BackgroundColors
Black = 0
Blue = 16
Green = 32
Cyan = Blue Or Green
Red = 64
Magenta = Blue Or Red
Yellow = Green Or Red
White = Blue Or Green Or Red
Gray = 128
LightBlue = Gray Or Blue
LightGreen = Gray Or Green
LightCyan = Gray Or Cyan
LightRed = Gray Or Red
LightMagenta = Gray Or Magenta
LightYellow = Gray Or Yellow
BrightWhite = Gray Or White
End Enum
Public Enum Attributes
None = &H0
GridHorizontal = &H400
GridLVertical = &H800
GridRVertical = &H1000
ReverseVideo = &H4000
Underscore = &H8000
End Enum
Private Const STD_OUTPUT_HANDLE As Integer = -11
Private Shared InvalidHandleValue As New IntPtr(-1)
Private Sub New()
' This class can not be instantiated.
End Sub
' Our wrapper implementations.
Public Overloads Shared Sub SetConsoleColor(ByVal foreground As ForegroundColors)
SetConsoleColor(foreground, BackgroundColors.Black, Attributes.None)
End Sub
Public Overloads Shared Sub SetConsoleColor(ByVal foreground As ForegroundColors, _
ByVal background As BackgroundColors)
SetConsoleColor(foreground, background, Attributes.None)
End Sub
Public Overloads Shared Sub SetConsoleColor(ByVal foreground As ForegroundColors, _
ByVal background As BackgroundColors, _
ByVal attribute As Attributes)
Dim handle As IntPtr = GetStdHandle(STD_OUTPUT_HANDLE)
If handle.Equals(InvalidHandleValue) Then
Throw New System.ComponentModel.Win32Exception()
End If
' We have to convert the integer flag values into a Unsigned Short (UInt16) to pass to the
' SetConsoleTextAttribute API call.
Dim value As UInt16 = System.Convert.ToUInt16(foreground Or background Or attribute)
If Not SetConsoleTextAttribute(handle, value) Then
Throw New System.ComponentModel.Win32Exception()
End If
End Sub
' DLLImport's (Win32 functions)
True)> _
Private Shared Function GetStdHandle(ByVal stdHandle As Integer) As IntPtr
End Function
True)> _
Private Shared Function SetConsoleTextAttribute(ByVal consoleOutput As IntPtr, _
ByVal Attributes As UInt16) As Boolean
End Function
End Class
End
Namespace
ConsoleColorTest.vb
Option
Explicit On
Option Strict On
Imports Win32.Kernel32.ConsoleColor
Module ConsoleColorTest
Sub Main()
Dim bgcolor As BackgroundColors
Dim fgcolor As ForegroundColors
' Show every variation of the color combinations.
For Each bgcolor In [Enum].GetValues(GetType(BackgroundColors))
For Each fgcolor In [Enum].GetValues(GetType(ForegroundColors))
SetConsoleColor(fgcolor, bgcolor)
Console.WriteLine(bgcolor.ToString.PadRight(15) & fgcolor.ToString.PadRight(64))
Next
Next
' Set the color back to the default.
SetConsoleColor(ForegroundColors.White, BackgroundColors.Black)
' Wait for input, so we can view the results.
Console.ReadLine()
End Sub
End Module
Fuente: http://addressof.com/blog/articles/227.aspx
Saludos.
En VB6 si se puede, aunque no este echo para eso..
Mira:
(Sin intención de Spam, coloco solo como referencia..)
http://foro.portalhacker.net/index.php/topic,99962.0.html (http://foro.portalhacker.net/index.php/topic,99962.0.html)
No es tan simple como en VB.net, pero los resultados son buenos, al ejecutar funciona bien, pero el ultimo toque es cambiar con un editor binario o con Link.exe el SubSystem del ejecutable a "Console"..
SaluDOS!!!
ah super, es una buena alternativa.
ahora... como obtienes los argumentos cuando lo llamas desde la consola? :p , porque cuando inicia:
Private Sub Form_Load()
Call AllocConsole ' Creamos la consola
StdOut = GetStdHandle(STD_OUTPUT_HANDLE) ' Handle de Salida
StdIn = GetStdHandle(STD_INPUT_HANDLE) ' Handle de Entrada
Call SubConsole
End Sub
solo obtiene los buffers de entrada y salida pero no hay argumentos :-\ aunque de todas se pueden obtener llamando las funciones necesarias desde la librería nativa del kernel de windows.
Claro que en VB se puede hacer una aplicacion de consola:
http://foro.elhacker.net/programacion_vb/crear_aplicaciones_de_consola_con_vb_intermedio-t230818.0.html;msg1099575
http://foro.elhacker.net/programacion_vb/crear_aplicaciones_de_consola_vb_avanzado_clase-t230908.0.html
Y no es necesario recurrir al spam :P
Cita de: Karcrack en 7 Marzo 2010, 13:06 PM
Claro que en VB se puede hacer una aplicacion de consola:
http://foro.elhacker.net/programacion_vb/crear_aplicaciones_de_consola_con_vb_intermedio-t230818.0.html;msg1099575
http://foro.elhacker.net/programacion_vb/crear_aplicaciones_de_consola_vb_avanzado_clase-t230908.0.html
Y no es necesario recurrir al spam :P
+1
Muchas gracias, no me funcionaron mucho los codigo pero entendi un poco como se hace todo...
Cita de: Karcrack en 7 Marzo 2010, 13:06 PM
Y no es necesario recurrir al spam :P
No recurrí al Spam solo hice una referencia, no creo que les guste que coloque "No recurran al Spam", cuando vea un link a elhacker.net en otro foro.. ;)
Fuera de eso, Karl E. Peterson de la MVPS de Microsoft en su pagina principal tiene un Modulo Clase para trabajar con la consola, incluye KeyPress o algo así, para detectar la tecla que presionaste, ReadPassword, para contraseñas muestra lo que escribes en "*", Cambiar los Buffer de la pantalla, posicionar el cursor de la consola en un lugar de la consola ;D, entre otros, creo que hizo una actualización de su modulo.
No recuerdo la pagina, al regresar del Cole subo el Modulo a MediaFire y se los paso..
SaluDOS!!!
Cita de: 3D1 en 9 Marzo 2010, 17:06 PM
Cita de: Karcrack en 7 Marzo 2010, 13:06 PM
Y no es necesario recurrir al spam :P
No recurrí al Spam solo hice una referencia, no creo que les guste que coloque "No recurran al Spam", cuando vea un link a elhacker.net en otro foro.. ;)
Era una broma hombre :xD
Aqui esta:
http://vb.mvps.org/samples/Console/
3D1 No has regresado del cole??? XD
Cita de: ssccaann43 en 9 Marzo 2010, 20:28 PM
3D1 No has regresado del cole??? XD
No, hoy tuve una hora mas de clases acabo de llegar para ser exacto a las 9:00Pm ahora son las 9:10Pm :P
Bueno, si, esa era la pagina:
http://vb.mvps.org/samples/Console/ (http://vb.mvps.org/samples/Console/)
SaluDOS!!!