• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

NuGuN

[VB6] Colocar Programa no Arranque do Windows

3 mensagens neste tópico

Bem... visto que o pessoal procura muito este tipo de funcionalidade, aqui fica então uma forma de o fazer.

Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

Private Const HKLM As Long = &H80000002







Private Function FArranque(Accao As String) As Integer
Dim lResult As Long
Dim lChave As Long
Dim TipoDados As Long
Dim sValor As String
Dim Chave As String
Dim NomeVal As String
Dim temp As String
Dim ProgPath As String

NomeVal = "ProgTeste"

ProgPath = App.Path
If (LCase(Right(ProgPath, 1)) <> "\") Then ProgPath = ProgPath & "\"

Chave = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
sValor = ProgPath & App.EXEName

If (LCase(Right(sValor, 4)) <> ".exe") Then sValor = sValor & ".exe"

lResult = RegOpenKey(HKLM, Chave, lChave)
temp = Space(1024)
lResult = RegQueryValueEx(lChave, NomeVal, 0&, TipoDados, temp, Len(temp))

If (lResult = 0) And (Accao = "del") Then
    lResult = RegDeleteValue(lChave, NomeVal)
    'lResult = RegCloseKey(lChave)
ElseIf (lResult = 2) And (Accao = "add") Then
    lResult = RegCreateKey(HKLM, Chave, lChave)
    lResult = RegSetValueExString(lChave, NomeVal, 0&, 1&, sValor, Len(sValor))
End If

FArranque = lResult
lResult = RegCloseKey(lChave)
End Function

Para utilizar a função FArranque basta:

FArranque "add"

ou

FArranque "del"

para adicionar ou apagar os valores, respectivamente. E ainda se pode guardar o retorno da função para controlar erros.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boaaa.. mas eu fiz de uma maneira diferente, ponho um atalho do programa executavel na pasta de Arranque e faz o mesmo..

mas bom na mesma esse codigo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora