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. ;)
Para la primera, podrias hacer algo como esto:
'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
EDITO: Ya ha contestado Cassiani.
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
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...
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 (http://www.recursosvisualbasic.com.ar/htm/listado-api/155-registrar-programa-para-iniciar-con-windows.htm)
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.
' 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.