Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Rekisteriin kirjoittaminen

Sivun loppuun

Kaffir [15.04.2005 18:12:24]

#

Olen käyttänyt hakua, ja löytänytkin tietoa windowsin rekisteriin kirjoittamisesta.
Ohjelmani sisältää Moduulin ja se taas tämän koodin:

Private Const HKEY_CURRENT_USER As Long = &H80000001
Private Const READ_CONTROL As Long = &H20000
Private Const STANDARD_RIGHTS_WRITE As Long = (READ_CONTROL)
Private Const KEY_SET_VALUE As Long = &H2&
Private Const KEY_CREATE_SUB_KEY As Long = &H4&
Private Const SYNCHRONIZE As Long = &H100000
Private Const KEY_WRITE As Long = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Private Const REG_SZ As Long = 1&

Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type

Private 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, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByRef lpData As Any, ByVal cbData As Long) As Long

Public Function KirjotaRunOnceen(ExenNimi As String, Polku As String) As Long
    Dim Handle As Long, Created As Long
    Dim SecAttrs As SECURITY_ATTRIBUTES

    With SecAttrs
        .nLength = Len(SecAttrs)
        .lpSecurityDescriptor = 0&
        .bInheritHandle = 1&
    End With

Call RegCreateKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\RunOnce", 0&, "", 0&, KEY_WRITE, SecAttrs, Handle, Created)

    KirjoitaRunOnceen = RegSetValueEx(Handle, ExenNimi, 0&, REG_SZ, ByVal Polku & "\" & ExenNimi & vbNullChar, Len(Polku & "\" & ExenNimi & vbNullChar))

    Call RegCloseKey(Handle)
End Function

Mutta ei toimi. Apua?

setä [15.04.2005 18:34:11]

#

Mitä kirjoitat rekisteriin? SaveSettigillä voi simppelisti kirjoittaa ja GetSettingillä lukea Windowsin rekisteriä.

Kaffir [15.04.2005 19:03:42]

#

ööh.. :P Tarkoituksena olisi saada ohjelman aukeamaan aina windowsin käynnistyessä.

Meitsi [15.04.2005 19:56:30]

#

Kopioi kuvake ohjelmaan startup kansioon....

Kaffir [15.04.2005 20:10:44]

#

En sitten tajunnut hölkösenpöläystä..

Juice [15.04.2005 21:07:32]

#

Kansioon C:/Documents and Settings/[user]/Käynnistä-valikko/Ohjelmat/Käynnistys.

Kaffir [15.04.2005 22:40:53]

#

Mutta miten tuota koodia pitäisi muutella että jos esim ohjelma sijaitsisi C:/Documents and Settings/SuppoTaalasmaa/Työpöytä/lollo.exe niin se kirjoittaisi rekisteriin myös tuon saman polun? Ja jos ohjelma taas sijaitsisi C:/lollo.exe niin silloin polkuna olisi myös tuo?

sooda [15.04.2005 22:45:29]

#

App.Path ehkä ratkaisu?

Cc [15.04.2005 23:52:43]

#

voisiko joku kirjoittaa selkeän koodi vinkin siitä miten ohjelman saa kirjoittamaan rekisteriin itsensä että käynnistyisi kun windows käynnistyy? uskoisin siitä olevan apua monelle.

BadSource [18.04.2005 07:27:06]

#

Tuossa oikeassa reunassa on tuollainen ihme-nappi kuin Haku (löytyy myös muualta)...

https://www.ohjelmointiputka.net/keskustelu/5458-wintoosan-rekisteri
https://www.ohjelmointiputka.net/keskustelu/5643-rekisteristä-viel-kerran

Nannohiiri [18.04.2005 16:23:07]

#

Private Sub Form_Load()
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"
End Sub

Sivun alkuun

Vastaus

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

Tietoa sivustosta