Haluaisin että ohjelmani aukeaisi käynnistyksen yhteydessä joten miten saisin kirjoitettua rekisteriin:
HKEY_CURRENT_USER\Software\microsoft\windows\
Katsoin kyllä tuota rekisteri avain koodivinkkiä mutta en oikein ymmärtänyt.
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
eikö se oo helpompaa vbs:ällä? ei tartte niin hirveesti koodia, mutta jos haluu pure vb, niin sitten..
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&,
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.
Taitaa taas vaihteeksi putka bugata.
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 :)
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)
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&,
Nyt kenoviivat näkyvät jälleen oikein VB-koodissakin...
jep, todella huono juttu jos tuollaista bugitusta ilmenee enemmänkin. :/
[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]
Aihe on jo aika vanha, joten et voi enää vastata siihen.