SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: AYCUL en Jueves 1 de Abril de 2004, 03:05
-
bueno aqui esta y solo en 4 lineas, sirve para iniciar tu aplicacion junto con windows
dim ruta as string
ruta="C:\miaplicacion.exe" (en esta parte ba la ruta de tu aplicacion)
Set inicio = CreateObject("WScript.Shell")
inicio.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\inicio", ruta
espero les sea util
:whistling: :rolleyes:
-
Hola AYCUL.
Los forer@s sin duda agradecemos el aporte.
Chau.
-
bueno aqui esta y solo en 4 lineas, sirve para iniciar tu aplicacion junto con windows
dim ruta as string
ruta="C:\miaplicacion.exe" (en esta parte ba la ruta de tu aplicacion)
Set inicio = CreateObject("WScript.Shell")
inicio.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\inicio", ruta
espero les sea util
:whistling: :rolleyes:
el problema de ese codigo es que algunos antivirus como el mcafee lo detecta como un script malicioso :(
-
es cierto bueno entonces pongo el codigo de muchas lineas hay les va......
--------------------------------------------------------------------------------------------
'en un modulo
'Declarations required to edit the Windows Registry:
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _
ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long
Public Const REG_NONE = (0) 'No value type
Public Const REG_SZ = (1) 'Unicode nul terminated string
Public Const REG_EXPAND_SZ = (2) 'Unicode nul terminated string w/enviornment var
Public Const REG_BINARY = (3) 'Free form binary
Public Const REG_DWORD = (4) '32-bit number
Public Const REG_DWORD_LITTLE_ENDIAN = (4) '32-bit number (same as REG_DWORD)
Public Const REG_DWORD_BIG_ENDIAN = (5) '32-bit number
Public Const REG_LINK = (6) 'Symbolic Link (unicode)
Public Const REG_MULTI_SZ = (7) 'Multiple Unicode strings
Public Const REG_RESOURCE_LIST = (8) 'Resource list in the resource map
Public Const REG_FULL_RESOURCE_DESCRIPTOR = (9) 'Resource list in the hardware description
Public Const REG_RESOURCE_REQUIREMENTS_LIST = (10)
Const READ_CONTROL = &H20000
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
Type SECURITY_DESCRIPTOR
Revision As Byte
Sbz1 As Byte
Control As Long
Owner As Long
Group As Long
End Type
Type ACL
AclRevision As Byte
Sbz1 As Byte
AclSize As Integer
AceCount As Integer
Sbz2 As Integer
End Type
Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long
Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long
Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Declare Function RegSetKeySecurity Lib "advapi32.dll" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long
Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _
"RegOpenKeyExA" (ByVal hKey As Long, _
ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Public Const HKEY_LOCAL_MACHINE = &H80000002
Private Const LB_ITEMFROMPOINT = &H1A9
Sub WriteRegistry(hKey As Long, SubKey As String, _
ValueName As String, vNewValue As String)
Dim Result As Long, RetVal As Long
RetVal = RegOpenKeyEx(hKey, SubKey, 0, KEY_ALL_ACCESS, Result)
RetVal = RegSetValueEx(Result, ValueName, 0, REG_SZ, vNewValue, CLng(Len(vNewValue) + 1))
RegCloseKey hKey
RegCloseKey Result
End Sub
Function PullValue(hKey As Long, Place As String, SubValue As String)
Dim szBuffer As String, dataBuff As String, ldataBuffSize As Long, phkResult As Long, RetVal As Long, _
Value As String, RegEnumIndex As Long
dataBuff = Space(255)
ldataBuffSize = Len(dataBuff)
szBuffer = Place
RetVal = RegOpenKeyEx(hKey, szBuffer, 0, KEY_ALL_ACCESS, phkResult)
Value = SubValue
RetVal = RegQueryValueEx(phkResult, Value, 0, 0, dataBuff, ldataBuffSize)
If RetVal = ERROR_SUCCESS Then
PullValue = s$
Else
MsgBox "Error in retreiving that value.", 16, "Error"
End If
End Function
---------------------------------------------------------------------------------------------
y en un form
Call WriteRegistry(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", "aplicacion", "c:\aplicacion.exe")
:hola:
-
disculpa AYCUL este codigo :good: y el primero que colocaste hacen lo mismo?? :think: y si es asi.. como es que un codigo tan corto puede hacer lo mismo que un codigo tan extenso...... o hay alguna diferencia radical entre la ejecucion.. aclarame por favor..
...y gracias por eso deverdad que me es util... :jumpie:
-
en realidad el primero hace lo mismo que el segundo (casi) pero como bien dice
bopo algunos antivirus lo pueden detectar como scrip malicioso. y el segundo
se registra de otra forma pero en realidad sirve para lo mismo. por ahora les digo
que sirve para win98, windows me,windows xp, solo lo e provado en esos tres y funciona bien.
si le das un repaso sabras porque (al codigo largo)
ahora que si quieren en lugar de escribir en el registro quitarlo diganme y lo pongo
:comp: :rolleyes:
-
gracias por la aclaracion... y de donde sacaste ese codigo.. o tu lo descubriste solo..?
-
me lo pasaron y me dije alguien lo debe querer y es por eso que se los proporciono
:hola:
-
hola aycul, como siempre, queda una pregunta, y si deseo poner una opcion para que el usuario elija si quiere que el programa se inicie con windows o no, es decir, si ya puso que si, no hay forma de deshacer esta opcion?, si la hay porfa dimelo o si no la hay, para que les diga de una vez a mis usuarios que :angry: no toquen aquello que no deben tocar... :rolleyes:
y gracias por el codigo, es de verdad muy util :flower:
-
hola aycul, como siempre, queda una pregunta, y si deseo poner una opcion para que el usuario elija si quiere que el programa se inicie con windows o no, es decir, si ya puso que si, no hay forma de deshacer esta opcion?, si la hay porfa dimelo o si no la hay, para que les diga de una vez a mis usuarios que :angry: no toquen aquello que no deben tocar... :rolleyes:
y gracias por el codigo, es de verdad muy util :flower:
debes poner un codigo que borre esa linea, pidele uno a aycul (que lo pinga aca), yo aprece que tengo uno pero tb lod etecta como script malicioso :blink:
-
HOLA!! PARA BORRARLO DEL REGISTRO HAY TE VA: :hola:
EN UN MODULO A DONDE TU QUIERAS
'-----------------------------------------------------------------------------------
Sub RemoveFromRegistry(KeyName As String)
Dim RetVal As Long, hKey As Long, ValueName As String, _
SubKey As String, Result As Long, SA As SECURITY_ATTRIBUTES, _
Create As Long
RetVal = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", _
0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, _
SA, Result, Create)
RetVal = RegDeleteValue(Result, KeyName)
RegCloseKey Result
End Sub
'-------------------------------------------------------------------
Call RemoveFromRegistry("NOMBRE DE TU EJECUTABLE SIN EXTENCION")
SI NO FUNCIONA ME DICES
:whistling:
-
no funciona.... :(
bueno, lo que quiero decir es que sì corre, pero no funciona :huh: , el valor de result es 0, no se porque sea, ya cambie el nom,bre de mi aplicacion y todo, que puede ser? :unsure:
-
Hola AYCUL, ya que el codigo de 4 lineas si me funciona, quisiera saber si existe la funcion inversa, porque utilizo el codigo para borrar del registro y nada... y otra cosa, quisiera saber como puedo ver y editar el registro de Windows a mano... bueno siempre hay que aprender algo mas porfis!...
-
En la casilla ejecutar del menu inicio, coloca REGEDIT.
ADVERTENCIA: Antes que hagas cualquier cambio, realiza un respaldo del registro.
-
Si funciono!:jumpie: gracias por todo :jumpie:
ahora funciona todo, solo faltaban las constantes, otra vez gracias y :bravo:
-
Un consejo.
Despues de usar el codigo de 4 lineas que es ciertamente efectivo, es mejor usar el codigo largo, por eso de que los antivirus lo detectan como script maligno (bueno eso es)
:comp: