Registrie Wert existiert nicht?!

  • Hallo, ich probiere mit folgendem Code alle Installierten Programme auszulesen:



    mein Problem ist nun das Darksiders II zum Beispiel nicht gefunden wird.
    Und ich selbst finde es in der Registrie (mit regedit.exe) unter diesem Pfad:


    Code
    1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{6239509C-2EEA-4C54-9610-68E5191B292F}_is1\DisplayName: "Darksiders II Version 1.0"


    auch nicht.


    Wenn ich jetztt aber z.b. mit Regshot meine Registrie änderungen vor und nach der Installation vergleiche wird mir genau der Pfad als geändert angezeigt?! Und i-wie muss es ja unter Programme auch zum deinstallieren angezeigt werden dadurch und wird es ja auch. Nur der Pfad is eben NICHT! da?!


    mfg
    Icynator

  • hab den fehler gefunden...
    bei regshot wird der pfad:


    Code
    1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{6239509C-2EEA-4C54-9610-68E5191B292F}_is1\DisplayName: "Darksiders II Version 1.0"


    angezeigt, in wirklichkeit is er aber:


    HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{6239509C-2EEA-4C54-9610-68E5191B292F}_is1\DisplayName: "Darksiders II Version 1.0"

  • Die Erklärung ist ganz einfach.
    Der "Wow6432Node" Ordner wird bei 64Bit Systemen angelegt.


    Wenn dein Programm also möglichst auf vielen Plattformen laufen soll, solltest du überprüfen, ob du dich auf einem 64bit oder 32bit Betriebssystem befindest. (Bei einem 64bit ist die Int Ptr. size auf 8(!), bei 32 auf 4) und dann die registry Pfade anpassen.


    Wobei es da unterscheide gibt. Es kann auch sein, das dein Programm auf 32 oder 64 Bit kompiliert wurde.
    Auch das muss berücksichtigt werden.

    And the reign will kill us all
    We throw ourselves against the wall
    But no one else can see
    The preservation of the martyr in me


    Slipknot - Psychosocial