kostenloser Webspace werbefrei: lima-city


Icons: C:\windows\system32\imageres.dll,-68 = 68?

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Hi Leute,
    ich habe mal ein paar Tipps befolgt und einen Algorithmus zur Analyse und Anzeige aller Dateitypen mit zugehörigen Icons erstellt. Nun habe ich das Problem, dass bei einigen der DefaultIcon-Verweisen der Index des Icons negativ ist. Jetzt habe ich den negativen Indexwert einfach durch multiplizieren mit -1 in einen positiven umgewandelt. Jetzt erscheinen aber bei einigen Dateitypen die korrekten und bei einigen Dateitypen die inkorrekten Icons.

    Beispielsweise habe ich festgestellt, dass bei der oben genannten Datei imageres.dll alle neg. Einträge in positive umgewandelt werden und dann um 6 vermindert werden müssen.

    Bsp: C:\windows\system32\imageres.dll,-68
    --> Index: -68
    --> Positiver Index: -68 * (-1) --> 68
    --> korrektes Icon auf Index: 68 - 6 --> 62


    Hat dafür jemand ne Erklärung?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    lccserver schrieb:
    Hi Leute,
    ich habe mal ein paar Tipps befolgt und einen Algorithmus zur Analyse und Anzeige aller Dateitypen mit zugehörigen Icons erstellt.


    Aja, es wäre nun doch ganz hilfreich, wenn du uns deinen sog. "Algorithmus" zeigen würdest, damit
    wir dir helfen können...

    lccserver schrieb:
    Hat dafür jemand ne Erklärung?

    Ein Fehler in deinem sog. "Algorithmus"?
  4. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Algorithmus: Unter einem Algorithmus versteht man allgemein eine genau definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen in endlich vielen Schritten., Wikipedia

    Also ist doch jede Funktion ein Algorithmus - @cbhp: tu nicht immer so groß...

    Ich habe meine Lösung aber bereits selbst gefunden, ist zwar umständlicher, Funktioniert aber trotzdem.

  5. Algorithmus: Unter einem Algorithmus versteht man allgemein eine genau definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen in endlich vielen Schritten., Wikipedia

    Also ist doch jede Funktion ein Algorithmus - @cbhp: tu nicht immer so groß...

    Ich habe meine Lösung aber bereits selbst gefunden, ist zwar umständlicher, Funktioniert aber trotzdem.

    Und wie? Wäre vllt sinnvoll das zu posten, wenn jmd anderes mal fragen hat.
  6. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    So, das ist mein Algorithmus, Copyright liegt bei mir:


    Imports Microsoft.Win32
    
    Public Class Form1
        Public imgList As New ImageList
    
        Private Sub GetAllIcons()
            Dim Key As RegistryKey = Registry.ClassesRoot
            Dim FileExtension As String 'Dateityp (z.B.: txt)
            Dim FileExtensionType As String 'Dateierläuterung (z.B.: txtfile)
            Dim FileExtensionIconPath As String 'Iconpfad des Dateityps
            Dim FileExtensionDescription As String 'Dateibeschreibung (z.B.: Textdokument)
    
            For Each Value As String In Key.GetSubKeyNames() 'Alle Unterschlüssel von HKEY_ClassesRoot ermitteln
                Try
                    If Value.StartsWith(".") Then 'Dateityp (z.B.: ".txt")
                        FileExtension = Value.Remove(0, 1)
                        FileExtensionType = Key.OpenSubKey(Value).GetValue("")
                        FileExtensionDescription = Key.OpenSubKey(FileExtensionType).GetValue("")
                        FileExtensionIconPath = Key.OpenSubKey(FileExtensionType & "DefaultIcon").GetValue("")
    
                        Dim IconPathArray As Array = FileExtensionIconPath.Split(",")
                        Dim IconPath As String = IconPathArray(0)
                        Dim IconPathIndex As Integer = IconPathArray(1)
    
    
                        If IconPathIndex < 0 Then 'Wenn der Icon-Index negativ ist, in positiven Umwandeln
                            IconPathIndex *= -1
                        End If
    'folgender Schritt - siehe Erklärung:
                        If IconPath.ToUpper() = "C:WINDOWSsystem32imageres.dll".ToUpper() Or IconPath.ToUpper() = "imageres.dll".ToUpper() Then 
                            IconPathIndex -= 6 'Bei einem Index dieser Datei den Icon-Index um 6 vermindern
                        ElseIf IconPath.ToUpper() = "C:WINDOWSsystem32shell32.dll".ToUpper() Or IconPath.ToUpper() = "shell32.dll".ToUpper() Then
                            IconPathIndex -= 82 'Bei einem Index dieser Datei den Icon-Index um 82 vermindern
                        End If
    
                        Dim Icon As Icon = Icon.FromHandle(ExtractIcon(Me.Handle, IconPath, IconPathIndex)) 'Icon extrahieren
    
    
                        imgList.Images.Add(FileExtension, Icon)
                        IconDescriptions.Add(FileExtensionDescription) 'Beschreibung zu einer ArrayList hinzufügen und per imgList.Images.IndexOfKey(FileExtension) abrufen
    
                    End If
                Catch err As Exception
                    'Wenn ein Schlüssel nicht existiert - ignorieren
                End Try
            Next
        End Sub
    End Class



    Erklärung:
    Ich habe wie bereits oben beschrieben festgestellt, dass man den Index der Icons teilweise verschieben muss, habe aber nicht feststellen können, woran das liegt.

    Ihr dürft diesen gern verwenden - bei mir Funktioniert er so einwandfrei. Aber wie gesagt - mein Copyright.

    Beitrag geändert: 21.8.2008 17:55:14 von lccserver
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!