Una pregunta importante

Iniciado por Ultra-Xandre, 24 Mayo 2008, 17:43 PM

0 Miembros y 2 Visitantes están viendo este tema.

Ultra-Xandre

Hola. Bueno, pues os cuento. Tengo dos preguntas y me hacen mucha falta. Vereis, son las siguientes:

1- ¿Cómo hago para añadir un programa que he creado al registro? Es decir, cuando se inicie le PC se inicie el programa.

2- ¿Cómo hago para que al cerrar un proceso con Shell "TaskKills /f /im proceso.exe" no aparezcan abajo las ventanas de CMD cerrando proceso?

Por favor, me hacen mucha falta. Ayudadme rapido.
Gracias de antemano. ;)

cassiani

#1
Para la primera, podrias hacer algo como esto:

Código (vb) [Seleccionar]

  'creamos el objeto
    Set Objeto = CreateObject("WScript.Shell")
   
    'leemos el registro
    Resultado = Objeto.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName)


'comparamos los resultados de la lectura
    If Resultado = "" Then
        'si no hay registro lo creamos
        Objeto.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe" 'lo mismo con nombrejecutable
    End If
     
    'liberamos el objeto
    Set Objeto = Nothing


Hay varias formas, los puedes hacer diretamente con la shell, para la segunda, prueba a usar el vbHide

xavierote

EDITO: Ya ha contestado Cassiani.

naderST

Cita de: Ultra-Xandre en 24 Mayo 2008, 17:43 PM
Hola. Bueno, pues os cuento. Tengo dos preguntas y me hacen mucha falta. Vereis, son las siguientes:

1- ¿Cómo hago para añadir un programa que he creado al registro? Es decir, cuando se inicie le PC se inicie el programa.

2- ¿Cómo hago para que al cerrar un proceso con Shell "TaskKills /f /im proceso.exe" no aparezcan abajo las ventanas de CMD cerrando proceso?

Por favor, me hacen mucha falta. Ayudadme rapido.
Gracias de antemano. ;)

Lo de iniciar tu programa con Windows lo hubieses conseguido en 1 segundo buscando en Google pero bueno... y lo otro pues haslo asi:


Private Sub Command1_Click()
    Shell "taskkill /F /IM notepad.exe", vbHide
End Sub

Ultra-Xandre

No entendí bien lo de añadir al registro. :S ¿Me poneis el code? Es que no sé cual es el que tengo que poner, Cassianime has puesto 5...

naderST

Cita de: Ultra-Xandre en 24 Mayo 2008, 21:22 PM
No entendí bien lo de añadir al registro. :S ¿Me poneis el code? Es que no sé cual es el que tengo que poner, Cassianime has puesto 5...

:¬¬ http://www.recursosvisualbasic.com.ar/htm/listado-api/155-registrar-programa-para-iniciar-con-windows.htm

cassiani

#6
claro, claro, pero no te lo coloque para que adornara a los demás, lee los comentarios y verás que cada linea hace algo, se crea el objeto, se verifica el registro, se crea si no existe, se libera el objeto, pero bueno... mejor hazlo con una shell.


juancho77

' consulta al registro si existe la clave, la abre
If RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\Currentversion\Run", llave) = ERROR_SUCCCESS Then
    If RegQueryValueEx(llave, 'nombreapp', 0&, valuetype, ByVal 0&, buffersize) = ERROR_SUCCESS Then
        If valuetype = REG_SZ Then
        stringb = String(buffersize, " ")
            If RegQueryValueEx(llave, 'nombreapp', 0&, 0&, ByVal stringb, buffersize) = ERROR_SUCCESS Then
            RegQueryStringValue = True
            Strdata = Left(stringb, buffersize - 1)
            End If
        End If
' si no la encuentra la copia al run para que se autoinicie, y hace una copia del ejecutable en el disco C
    Else
        Dim ruta As String
        route66 = route66 & "\" & 'nombreapp'
        Label2.Caption = route66
        If RegSetValueEx(llave, 'nombreapp'", 0&, REG_SZ, ByVal route66, Len(route66) + 1) = ERROR_SUCCESS Then
        copy 'aca llama a la funcion copy y se copia a la carpeta que escribimos en el registro
        End If
    End If
End If


Bueno, como para sumar algo, ese lo tenia en un programa viejito. Consulta primero si existe y luego en caso negativo hace una copia, utilizando error_success porque recien empezaba. Que memorias  :P

PD:tenes que declarar las apis.