Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE | VB-Versionen: VB4, VB5, VB6 | 22.12.01 |
Startseite des IE auslesen und neu setzen Zwei Funktionen, mit denen man die aktuelle Startseite des IE auslesen und ggf. ändern und neu speichern kann. | ||
Autor: Dieter Otter | Bewertung: | Views: 16.327 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Immer wenn Sie den Internet Explorer aufrufen wird ja bekanntlich die in den Systemeinstellungen (Internet Explorer) festgelegte Startseite aufgerufen.
Die Startseite selbst wird in der Windows Registry gespeichert - und zwar im Schlüssel:
Software\Microsoft\Internet Explorer\Main\Start Page
Mit diesem "Wissen" ist es nun ein leichtes die Startseite des IE per VB-Code auszulesen und ggf. neu festzulegen.
Alles, was Sie brauchen ist nachfolgender Code, den Sie am besten in ein Modul "packen":
Option Explicit ' zunächst alle 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 RegQueryValueEx Lib "advapi32.dll" _ Alias "RegQueryValueExA" ( _ ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal lpReserved As Long, _ lpType As Long, _ lpData As Any, _ lpcbData As Long) As Long Private Declare Function RegCreateKey Lib "advapi32.dll" _ Alias "RegCreateKeyA" ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ phkResult 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, _ lpData As Any, _ ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" ( _ ByVal hKey As Long) As Long Private Const REG_SZ = 1 ' Registry-Schlüssel Private Const HKEY_CURRENT_USER = &H80000001 ' Zugriff-Codes Private Const KEY_QUERY_VALUE = &H1
' Ermittelt die URL der aktuellen Startseite im IE Public Function IE_GetStartPage() As String Dim lhKeyOpen As Long Dim lResult As Long Dim sPage As String Dim lDataLen As Long Dim SubKey As String Dim KeyName As String ' SubKey SubKey = "Software\Microsoft\Internet Explorer\Main\" ' Schlüssel öffnen If RegOpenKeyEx(HKEY_CURRENT_USER, SubKey, 0, _ KEY_QUERY_VALUE, lhKeyOpen) = 0 Then ' String-Länge ermitteln KeyName = "Start Page" If RegQueryValueEx(lhKeyOpen, KeyName, 0, _ REG_SZ, ByVal 0, lDataLen) = 0 Then ' String mit Nullzeichen füllen sPage = String(lDataLen, Chr$(0)) ' Startseite auslesen If RegQueryValueEx(lhKeyOpen, KeyName, 0, _ 0, ByVal sPage, lDataLen) = 0 Then sPage = Left$(sPage, InStr(sPage, Chr$(0)) - 1) End If End If ' Schlüssel schliessen RegCloseKey lhKeyOpen End If IE_GetStartPage = sPage End Function
' URL der neuen Startseite des IE speichern Public Function IE_SetStartPage(ByVal sPageNew As String) _ As Boolean Dim lhOpenKey As Long Dim SubKey As String Dim KeyName As String ' SubKey SubKey = "Software\Microsoft\Internet Explorer\Main\" ' Schlüssel öffnen (ggf. erstellen) If RegCreateKey(HKEY_CURRENT_USER, SubKey, _ lhOpenKey) = 0 Then ' Neue Startseite in der Registry speichern KeyName = "Start Page" If RegSetValueEx(lhOpenKey, KeyName, 0, REG_SZ, _ ByVal sPageNew, Len(sPageNew)) = 0 Then ' OK, Eintrag war erfolgreich IE_SetStartPage = True End If ' Schlüssel schliessen RegCloseKey lhOpenKey End If End Function
Der Aufruf aus dem Projekt erfolgt dann folgendermassen:
' Startseite des IE auslesen Dim sPage As String sPage = IE_GetStartPage()
' Neue Startseite festlegen If IE_SetStartPage("http://www.vbarchiv.de") Then MsgBox "Eintrag erfolgreich geändert.", 64 Else MsgBox "Startseite konnte nicht eingetragen werden.", 16 End If