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ä.
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 SubEdit: Prkl! Toi kyllä lisää arvon RunOnceen mut ei käynnistä ohjelmaa koneen käynnistyksessä. Mikä avuksi?
Hetkonen eikös tuo rekisteri avaimen polku ole virheellinen. Itselläni ainakin on käynnityvät ohjelmat polussa
HKEY_CURRENT_USER\Software\Microsoft\Windows\
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.
Oi kiitos kaunis, ongelma todellakin oli tossa polussa. Jostain mistälie oli tarttunu tommonen polku matkaan.
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"Aihe on jo aika vanha, joten et voi enää vastata siihen.