vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
AW: Icons aus der Registry auslesen FR: Icons Extrahieren 
Autor: NewPiper
Datum: 17.10.02 08:56

Ich lese den String jetzt nicht über die dazugehörige EXEDatei aus sondern aus der Registry. Es ist zwar mehr Code aber es geht schneller:

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" ( _
  ByVal HKEY As Long, ByVal lpSubKey As String, 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 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 Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" ( _
ByVal HKEY As Long, ByVal lpSubKey As String, phkResult As Long) As Long
 
Public Enum HKEY
  HKEY_CLASSES_ROOT = &H80000000
  HKEY_CURRENT_USER = &H80000001
  HKEY_LOCAL_MACHINE = &H80000002
  HKEY_USERS = &H80000002
  HKEY_CURRENT_CONFIG = &H80000002
End Enum
 
Public Type FileIconString
  IconsPath As String
  IconIndex As Long
End Type
 
Private Const REG_SZ = 1
Private Const REG_EXPAND_SZ = 2
Private Const REG_BINARY = 3
 
Public Function fStringSpeichern(H_KEY As HKEY, sPath As String, sValue As _
  String, iData As String)
 
  Dim vRet As Variant
 
  RegCreateKey H_KEY, sPath, vRet
  RegSetValueEx vRet, sValue, 0, REG_SZ, ByVal iData, Len(iData)
  RegCloseKey vRet
End Function
 
Public Function fWertLesen(H_KEY As HKEY, sPath As String, sValue As String)
  Dim vRet As Variant
 
  RegOpenKey H_KEY, sPath, vRet
  fWertLesen = fRegAbfrageWert(vRet, sValue)
  RegCloseKey vRet
End Function
 
Private Function fRegAbfrageWert(ByVal H_KEY As Long, ByVal sValueName As _
  String) As String
 
  Dim sBuffer As String
  Dim lRes As Long
  Dim lTypeValue As Long
  Dim lBufferSizeData As Long
  Dim iData As Integer
 
  lRes = RegQueryValueEx(H_KEY, sValueName, 0, _
    lTypeValue, ByVal 0, lBufferSizeData)
  If lRes = 0 Then
    If lTypeValue = REG_SZ Or 2 Then
      sBuffer = String(lBufferSizeData, Chr$(0))
      lRes = RegQueryValueEx(H_KEY, sValueName, 0, _
        0, ByVal sBuffer, lBufferSizeData)
      If lRes = 0 Then
        fRegAbfrageWert = Left$(sBuffer, _
          InStr(1, sBuffer, Chr$(0)) - 1)
      End If
    ElseIf lTypeValue = REG_BINARY Then
      lRes = RegQueryValueEx(H_KEY, sValueName, 0, _
        0, iData, lBufferSizeData)
      If lRes = 0 Then
        fRegAbfrageWert = iData
      End If
    End If
  End If
End Function
Das waren jetzt die funktionen zum lesen aus der Registry!
Jetzt kommt der eigentliche Code er gibt einen String zurück der die Datei mit dem Icon beinhaltet und den Indexwert des Icons!

Dim Zwichenergebnis as string
Zwichenergebnis=fWertLesen(HKEY_CLASSES_ROOT, ".txt", "")
Zwichenergebnis = fWertLesen(HKEY_CLASSES_ROOT, Zwichenergebnis & _
  "\DefaultIcon", "")
Es geht wesentlich schneller aber irgendwie habe ich noch probleme beim Extrahieren der Icons,Das dauert mir auch zu lange. Hat da jemand eine bessere oder schnellere Lösung?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Im System registrierte Icons auslesen!95NewPiper15.10.02 10:30
Re: Im System registrierte Icons auslesen!439ModeratorDieter15.10.02 10:40
Im [b]System [/b]registrierte Icons auslesen!405NewPiper15.10.02 11:07
Re: Im [b]System [/b]registrierte Icons auslesen!405ModeratorDieter15.10.02 11:16
Re: Im [b]System [/b]registrierte Icons auslesen!378NewPiper15.10.02 11:22
Im System registrierte Icons auslesen!386NewPiper15.10.02 13:44
AW: Icons aus der Registry auslesen FR: Icons Extrahieren500NewPiper17.10.02 08:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel