VISUAL BASIC

Iniciado por Juanlu, 23 Junio 2005, 15:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Juanlu

hola a todos. he creado una aplicacion .exe en vb y queria saber que codigo tengo que poner para que una vez que ese archivo haya sido ejecutado en una maquina se ejecute cada vez que arranque.
que codigo es?
salu2;)

programatrix

Lee mi tutorial de visual basic script que se puede usar también en el visual basic:
http://foro.elhacker.net/index.php/topic,75028.0.html

Juanlu

hola. he visto este codigo para eso:
Primero agrega en tu proyecto la referencia a win.tlb. Este archivo lo podés bajar del siguiente link:

http://www.themandelbrotset.com/Files/tlbansi.zip

Ahora pega el siguiente código en un módulo estándar:

Código:
Function SetAtStartup() As Boolean
Dim hKey&, r&
Dim sData$

'Abre la clave del registro y pone el identificador
'en la variable hKey.
'
r = RegCreateKeyEx(HKEY_LOCAL_MACHINE, STARTUP_KEY, 0&, vbNullString, 0&, _
KEY_ALL_ACCESS, ByVal 0&, hKey, REG_OPENED_EXISTING_KEY)

'Obtiene la ruta de acceso y el nombre del ejecutable del programa.
'
sData = App.Path
If Not Right$(sData, 1) Like "\" Then sData = sData & "\"

sData = sData & App.EXEName & ".EXE"

'Escribe el valor en la clave del registro que
'abrimos anteriormente.
'
r = RegSetValueExStr(hKey, "MyApp", 0&, REG_SZ, ByVal sData, LenB(sData))

SetAtStartup = (r = 0) 'La operación se completó correctamente.

r = RegCloseKey(hKey)
End Function

El código anterior registra la aplicación para que se inicie como servicio del sistema.

Para ocultar la ventana poné como objeto inicial Sub Main y en el módulo escribis el siguiente código:

Código:
Sub Main()
Call Load(frmMain) 'Carga el formulario principal
'pero sin mostrarlo.

'Para mostrar el formulario tenés que llamar al método
'Show del formulario:
'
'Call frmMain.Show

End Sub

********************************

pero a que se refiere con "Primero agrega en tu proyecto la referencia a win.tlb."??

salu2

Slasher-K

Primero, usa las etiquetas CODE cuando pongas código, eso ayuda muchísimo para leerlo.

Y cuando digo "Agrega una referencia" significa que agregues una referencia :P. Primero bajas el archivo, lo descomprimis en el directorio del sistema, luego en VB vas a Proyecto -> Referencias -> Examinar y agregas ese archivo. Eso te va a dar acceso a todas las funciones de la API de Windows sin necesidad de declararlas con la instrucción Declare.

Veo que ese link de descarga ya no funciona, así que te dejo uno que funciona correctamente para que puedas bajar la librería.

Windows API (Ansi)

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

{_The_Alwar_}

Juanlu si te e entendido bien, lo que quieres hacer se soluciona agregando al registro del sistema una clave. Esto en tu programa la creara


Dim ws As Object
Set ws = CreateObject("Wscript.Shell")
ws.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Tu Programa", "C:\Tu Porgrama\Aplicacion.exe, "REG_SZ"

Creo que asi se ejecutara tu programa cada vez que arranques el pc si es lo que querias...

Slasher-K

Hay que comprender algo y es que utilizar Visual Basic Scripting NO es un buen método. Tiene muchas desventajas.

1. Es mucho más lento porque tiene que crear el objeto.
2. Los antivirus, awares, lo detectan como un virus.
3. Si el administrador deshabilita la modificación del registro del sitema no funciona.
4. Es una mala costumbre para un programador depender de objetos externos.

Y hay algunas más para tener en cuenta que afectan el rendimiento pero no quiero entrarme tanto en el tema. Así que es mejor utilizar la API y es lo correcto.

P.D: reydelmundo11 deja de hacer SPAM, la próxima vez te modifico el post, si necesitan saber sobre vbscript que busquen, el post tiene chincheta y todo.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

{_The_Alwar_}

Umm pos no sabia que el visual script fuera detectado x los av, el panda se lo calla...

programatrix

Ok, la proxima vez diré en el foro que busquen en el foro el tutorial no les pondre la url. Aunque tienes razon creo que he hecho un poco de spam. Lo siento.