Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Registeri vb

Jäynis [03.11.2005 15:51:05]

#

Elikkä tarvisi saada ohjelma käynnistymään koneen käynnistyksessä(tässä olen onnistunu) mutta miten saada se avain poistettua?
Avaimen luontiin käytin
täältä
löytyvää esimerkkiä.

Jäynis [03.11.2005 17:20:41]

#

Ongelma ratkesi pienellä googletuksella ja päänrapsutuksella.
Kertokaapas gurut että onko tässä mitään mitä pitäisi ehdottomasti muuttaa.

Public Const HKEY_CURRENT_USER = &H80000001

Public Const REG_SZ = 1

Public Const ERROR_SUCCESS = 0&

Public Declare Function RegCloseKey Lib "advapi32.dll" _
    (ByVal hKey As Long) As Long

Public Declare Function RegCreateKey Lib "advapi32.dll" _
    Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey _
    As String, phkResult As Long) As Long

Public Declare Function RegDeleteValue Lib "advapi32.dll" _
    Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal _
    lpValueName As String) As Long

Public Declare Function RegOpenKey Lib "advapi32.dll" _
    Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey _
    As String, phkResult As Long) As Long

Public Declare Function RegSetValueEx Lib "advapi32.dll" _
    Alias "RegSetValueExA" (ByVal hKey As Long, ByVal _
    lpValueName As String, ByVal Reserved As Long, ByVal _
    dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Public Sub Tallenna()

    Dim hCurKey As Long
    Dim lRegResult As Long

    lRegResult = RegCreateKey(HKEY_CURRENT_USER, "Software\Microsoft\CurrentVersion\RunOnce", hCurKey)

    lRegResult = RegSetValueEx(hCurKey, "testi.exe", 0, REG_SZ, _
        ByVal "c:\testi.exe", Len("c:\testi.exe"))

    If lRegResult <> ERROR_SUCCESS Then
        MsgBox "Ongelma!"
    End If

    lRegResult = RegCloseKey(hCurKey)
End Sub

Public Sub Poista()

    Dim hCurKey As Long
    Dim lRegResult As Long

    lRegResult = RegOpenKey(HKEY_CURRENT_USER, "Software\Microsoft\CurrentVersion\RunOnce", hCurKey)

    lRegResult = RegDeleteValue(hCurKey, "testi.exe")

    lRegResult = RegCloseKey(hCurKey)
End Sub

Edit: Prkl! Toi kyllä lisää arvon RunOnceen mut ei käynnistä ohjelmaa koneen käynnistyksessä. Mikä avuksi?

panttu [03.11.2005 18:13:29]

#

Hetkonen eikös tuo rekisteri avaimen polku ole virheellinen. Itselläni ainakin on käynnityvät ohjelmat polussa
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Toki tuo RunOnce pitäisi toimia, jos ohjelma käynnistetään vain kerran käynnistyksen yhteydessä vai mitä tuo Once meinaakaan tuossa.

Kuitenkin tuon microsoft solmun jälkeen pitäisi tulla Windows solmu, että siinä on ainakin virhe.

Jäynis [03.11.2005 18:27:06]

#

Oi kiitos kaunis, ongelma todellakin oli tossa polussa. Jostain mistälie oli tarttunu tommonen polku matkaan.

Nannohiiri [05.11.2005 15:11:37]

#

Dim Reg As Object
Set Reg = CreateObject("wscript.shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\" & "NIMI", App.Path & "\" & App.EXEName & ".exe"

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta