Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » FAQ Visual Basic / VBA / VB.Net » VB6 - Autostart in Programmen 2!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.04.2004, 12:58 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Autostart für dein Programm! Zweiter Teil! Undzwar ganz mit der Registry:

Der nachfolgende Tipp zeigt, wie man eine bestimmte Anwendung direkt in die Windows-Registrier-Datenbank einträgt, so daß diese beim Windows-Start automatisch geladen wird. Über eine entsprechende Prozedur kann der Eintrag auch wieder aus der Registrier-Datenbank gelöscht werden.

Visual Basic:
'zunächst die benötigten API-Deklarationen
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
  Alias "RegOpenKeyExA" (ByVal hKey As Long, _
  ByVal lpSubKey As String, ByVal ulOptions As Long, _
  ByVal samDesired As Long, phkResult As Long) As Long

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

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

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

Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002

Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_SET_VALUE _
  Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or _
  KEY_NOTIFY Or KEY_CREATE_LINK

Const ERROR_SUCCESS = 0&

Const REG_NONE = 0
Const REG_SZ = 1

'Anwendung in Registry eintragen
'
'sDescr:  Beschreibung/Bezeichnung
'sPath :  Pfad inkl. Dateiname der Anwendung
'===========================================
Public Function SetAutoRun(sDescr As String, _
  sPath As String) As Boolean

  Dim lResult As Long
  Dim KeyHandle As Long
  Dim Key As String

  Const root = HKEY_CURRENT_USER
  Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

  lResult = RegOpenKeyEx(root, Key, 0, KEY_ALL_ACCESS, _
    KeyHandle)
  If lResult <> ERROR_SUCCESS Then
    SetAutoRun = False
    Exit Function
  End If

  '+1 für die Null am Ende
  lResult = RegSetValueEx_String(KeyHandle, sDescr, 0, _
    REG_SZ, sPath, Len(sPath) + 1)

  RegCloseKey KeyHandle
  SetAutoRun = (lResult = ERROR_SUCCESS)
End Function

'aus Registry entfernen
'
'sDescr:  Beschreibung/Bezeichnung
'=================================
Function RemoveAutoRun(sDescr As String) As Boolean
  Dim lResult As Long
  Dim KeyHandle As Long
  Dim Key As String
  
  Const root = HKEY_CURRENT_USER
  Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

  lResult = RegOpenKeyEx(root, Key, 0, _
    KEY_ALL_ACCESS, KeyHandle)
  If lResult <> ERROR_SUCCESS Then
    RemoveAutoRun = False
    Exit Function
  End If
  lResult = RegDeleteValue(KeyHandle, sDescr)
  RemoveAutoRun = (lResult = ERROR_SUCCESS)
  RegCloseKey KeyHandle
End Function



Beispiel:
Beim Starten von Windows soll automatisch Notepad (Texteditor) gestartet werden.

Visual Basic:
If SetAutoRun("Notepad", "c:\windows\notepad.exe") Then
  MsgBox "Eintrag war erfolgreich."
Else
  MsgBox "Eintrag war nicht erfolgreich."
End If

'Eintrag wieder aus Registry löschen
RemoveAutoRun "Notepad"


_____________________________________________
Sooooo.... Ich hoffe ich konnte euch mit dem ganzen Tipps im Thema
Autostart ein wenig weiterhelfen! *tiiiiiief durch atme*
Ich danke allen die meine Tipps bis HIER gelesen haben ;)

Danke!!
--
Mit freundlichen Grüßen
Audron, audron@sxene.de

Dieser Post wurde am 26.09.2005 um 16:57 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ FAQ Visual Basic / VBA / VB.Net ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: