Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Wintoosan rekisteri

Sivun loppuun

tuomas [12.06.2004 20:36:27]

#

Haluaisin että ohjelmani aukeaisi käynnistyksen yhteydessä joten miten saisin kirjoitettua rekisteriin:
HKEY_CURRENT_USER\Software\microsoft\windows\currentversion\runonce niin että ohjelmani aukeaisi käynnistyksen yhteydessä?
Katsoin kyllä tuota rekisteri avain koodivinkkiä mutta en oikein ymmärtänyt.

Blaze [12.06.2004 22:08:49]

#

Noniin, nyt kun keksin, mikä tuossa omassa softassani mätti kyseisen toiminnon kohdalla, voin copypasteilla siitä.

IRC kirjoitti:

21:53 <@Blaze_> perkele, kaks tuntia tässä miettiny, että minkä helvetin takia
                tää tallentaa rekisteriin vaan jotain randompaskaa, niin vika
                on siinä, että puuttuu yks hemmetin byval >_<

^_^;;

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

'ExenNimi esim. munsofta.exe
'Polku esim. c:\Program Files\Munsofta (ilman viimeistä \)
'Palauttaa 0, jos kirjoittaminen onnistui, virhenumeron jos ei
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\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

Bill Keltanen [13.06.2004 19:49:02]

#

eikö se oo helpompaa vbs:ällä? ei tartte niin hirveesti koodia, mutta jos haluu pure vb, niin sitten..

tuomas [19.06.2004 22:59:03]

#

Löysin tuosta koodista pienen bugin.

tuo rivi

Call RegCreateKeyEx(HKEY_CURRENT_USER, "SoftwareMicrosoftCurrentVersionRunOnce", 0&, "", 0&,

luo rekisteriin kansion nimeltä SoftwareMicrosoftCurrentVersionRunOnce.
Rivi pitää siis korvata näin:

Call RegCreateKeyEx(HKEY_CURRENT_USER, "Software/Microsoft/CurrentVersion/RunOnce", 0&, "", 0&,

Blaze [19.06.2004 23:01:31]

#

tuomas kirjoitti:

Löysin tuosta koodista pienen bugin.

Hmm...
Siinä oli nuo kenoviivat kyllä vielä kun lähetää painoin...

Testaillaanpas hiukan...
"blah\blah\blah"

"blah\blah\blah"
blah\blah\blah
"blah\\blah\\blah"

Edit: Eli kyllä, koodivb-tagi syö tekstistä \-merkit. Jos laittaa tuplana, niin yksi tulee näkyviin. Jotain tekemistä escapetuksen kanssa siis. Pelkkä koodi-tagi ei tuota tee.

tuomas [19.06.2004 23:04:24]

#

Taitaa taas vaihteeksi putka bugata.

nomic [20.06.2004 01:54:21]

#

tuomas, juuh ehkä putka bugaa, mutta mietin miten hyvin pysyny hyvällä mallilla tämäkin paikka :)
nostan hattua laaksoselle, hyvää työtä, ja mikä mesta se nyt olisi mikä ei bugaisi, kaikki bugaa, dösätkin bugaa ku vaihteet menee paskaksi :P

ps. elämä on bugeja täynnä ja siihen kun hakee päivitystä joudut hakkeroida taivaaseen backdoorin kautta jolloin ovi suljetaan ja sulle naulataan siivet selkää ja siellä sitte dataat bugisena muitten konnektoitujen kanssa :)

tuomas [20.06.2004 10:04:40]

#

Kyllähän paikka hyvänä on pysynyt :)
Ilmapiiri on ainakin mielestäni hyvä, eikä mikään liian kireä. Uusia ohjelmoijia autetaan eikä naureta ulos putkasta ja sanota että opettele koodaamaan ja tule sitten takaisin jos kehtaat.
Viestitkin (pääosin) ovat pysynyyt asiallisina, mitä nyt muutamia offtopikkeja :) Ei niistä offtopikeista ainakaan mielestäni pahemmin haittaa ole, kaikki ne tulee aina luettua (taitaapi jäädä peräti joskus varsinaisen aiheen lukeminen vähemmälle)

tuomas [21.06.2004 17:25:02]

#

Ja taas löytyi bugi tuosta :(

Call RegCreateKeyEx(HKEY_CURRENT_USER, "Software/Microsoft/CurrentVersion/RunOnce", 0&, "", 0&,

Täytyy korvata näin:

Call RegCreateKeyEx(HKEY_CURRENT_USER, "Software/Microsoft/Windows/CurrentVersion/RunOnce", 0&, "", 0&,

Antti Laaksonen [22.06.2004 00:26:56]

#

Nyt kenoviivat näkyvät jälleen oikein VB-koodissakin...

CodeMaster [22.06.2004 12:04:09]

#

jep, todella huono juttu jos tuollaista bugitusta ilmenee enemmänkin. :/

sooda [22.06.2004 13:56:09]

#

[karmee offtopic]

nomic kirjoitti:

elämä on bugeja täynnä ja siihen kun hakee päivitystä joudut hakkeroida taivaaseen backdoorin kautta jolloin ovi suljetaan ja sulle naulataan siivet selkää ja siellä sitte dataat bugisena muitten konnektoitujen kanssa :)

Hieno hei :D
[/karmee offtopic]


Sivun alkuun

Vastaus

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

Tietoa sivustosta