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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  solucionado - Salida de consola en modo ventana?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: solucionado - Salida de consola en modo ventana?  (Leído 9,853 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
solucionado - Salida de consola en modo ventana?
« en: 30 Octubre 2010, 04:12 am »

Hola, estaba intentando crear una aplicación gráfica con formularios en vb.net pero a la ves quería ir imprimiendo los status o errores atraves de la consola que lo llama.

Me explico...
La idea es que si le hago doble click no se verá consola, solo la ventana y ya, pero si lo abro desde la consola quería que me mostrara algunos estados, se podrá? sería como una convinación entre una aplicación windows form y consola, pero no quiero haerla consola 100% porque hay casos en que debo mostrar la ventana sin que se vea una consola


« Última modificación: 30 Octubre 2010, 06:00 am por WHK » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Salida de consola en modo ventana?
« Respuesta #1 en: 30 Octubre 2010, 05:15 am »

Mostrar ventana sin que se vea consola no se si se pueda, pero, al revés sí. Es decir, desde la consola puedes levantar formularios, algo así al estilo Blender 3D, qué inicia una consola y luego el programa y cuando hay un error sale es en la consola.

No estoy muy seguro, pero creo que si haces Console.WriteLine en una aplicación Windows no sale nada. Son las 11 y algo de la noche y me da pereza abrir VS. Mañana tempranito lo pruebo e intento varias cosas a ver si conseguimos algo interesante.

Un saludo.


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Salida de consola en modo ventana?
« Respuesta #2 en: 30 Octubre 2010, 05:59 am »

ya lo solucioné, gracias.
http://www.eggheadcafe.com/software/aspnet/31622966/command-line-interface-and-windows-form-in-same-program.aspx

Citar
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=983493&SiteID=1
has a solution to the problem (incorporated in the code below)
which works for Visual Studio 2005 (Visual Basic 2005 Express,
Framework 2.0), but not for Visual Studio .NET 2003 (VB 2003
.NET, Framework 1.1).

Here's how to reproduce the problem using either Visual Basic
.NET 2003 or Visual Basic 2005:

Start a new Windows Application project - WindowsApplication1.
This gives Form1.vb.
Add a Module to the project - Module1.vb
Replace the empty Module1 code with the following code:

Imports System.Environment

Module Module1

Declare Function AttachConsole Lib "kernel32" (ByVal
dwProcessId As Int32) As Boolean
Declare Function FreeConsole Lib "kernel32.dll" () As Boolean

Sub Main()
Dim args As String() = GetCommandLineArgs()
If args.Length = 1 Then
'No arguments so show windows form
Dim frmMain As New Form1
Application.Run(frmMain)
Else
AttachConsole(-1)
Console.WriteLine("Arguments supplied")
FreeConsole()
End If
End Sub

End Module


For VB 2003, in Project - Properties, leave Output type as
Windows Application and change Startup object to Sub Main.
For VB 2005, in Project - Properties, untick Enable application
framework, leave Output type as Windows Application and change
Startup object to Sub Main.

Build the project, then open a command prompt and run
WindowsApplication1.exe from it as follows:

1. With no arguments.  The form is displayed and the command
prompt returns immediately, allowing other commands to be
entered.  Required behaviour.

2. With any number of arguments.  The 'Arguments supplied' is
displayed for the VB 2005 application, but not for VB 2003.

3. Run it from Windows Explorer.  The form is displayed and a
separate console window is not opened.  Required behaviour.

So case 2 isn't working as required for VB 2003.

The AttachConsole and FreeConsole functions described in the link
above make case 2 work for VB 2005.

For the VB 2003 application, it fixes case 2 for a Debug build,
but has no effect for a Release build, which is exactly the same
findings as
http://groups.google.co.uk/group/microsoft.public.dotnet.languages.vb/msg/2d1643af7419e141

I'm interested in why it doesn't work for the VB 2003 Release
build, and any ideas for alternative fixes.

cheers,

Lo que hize fue crear la nueva clase, ir a las propiedades del proyecto y decirle que inicie por el sub main y funciona de lujo :D

Ahora cuando le hago doble click se ven las ventanas solamente pero cuando lo abro desde la consola me aparece el debug en colores jajaja mas las ventanas también.

Código
  1. Imports System.Environment
  2. Imports System.IO
  3.  
  4. Module ControlDriver
  5.  
  6.    Declare Function AttachConsole Lib "kernel32" (ByVal dwProcessId As Int32) As Boolean
  7.    Declare Function FreeConsole Lib "kernel32.dll" () As Boolean
  8.  
  9.    Dim args As String()
  10.    Dim OriginalColor As System.ConsoleColor
  11.  
  12.    Sub Main()
  13.        args = GetCommandLineArgs()
  14.        AttachConsole(-1)
  15.        OriginalColor = Console.ForegroundColor ' Establece el color original de la consola
  16.        Console.ForegroundColor = ConsoleColor.Green
  17.        Console.WriteLine("=== XXXX ===") ' Header
  18.        Console.ForegroundColor = OriginalColor
  19.        Dim frmMain As New Form1
  20.        Application.Run(frmMain)
  21.    End Sub
  22.  
  23.    Private Function Instalar() As Boolean
  24. ..........

Ahora puedo escribir console.writeline() desde los forms xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines