64bit Registry keye hinzufügen



  • Hey, hab folgende zeile in meinem programmcode:

    system("%windir%\\SysWOW64\\regedit.exe /s %windir%/MeineRegDatei.reg");
    

    komischerweiße wird der schlüssel nicht in die 64bit registry aufgenommen...
    sicher irgendein leichtsinnsfehler, bitte helft mir... 🙂

    lg Flo



  • Warum rufst du dafür die 32Bit Version auf? 😕

    Ich würde es mit mal mit der 64Bit Version %windir%\system32\regedit.exe probieren.



  • rwin schrieb:

    Warum rufst du dafür die 32Bit Version auf? 😕

    Ich würde es mit mal mit der 64Bit Version %windir%\system32\regedit.exe probieren.

    ich dachte die 64-bit regedit.exe is in syswow64 oder nich?



  • Nein es ist genau umgekehrt wie man denken würde 😉
    \system32\ <- 64bit dlls
    \SysWOW64\ <- 32bit dlls



  • geeky schrieb:

    Nein es ist genau umgekehrt wie man denken würde 😉
    \system32\ <- 64bit dlls
    \SysWOW64\ <- 32bit dlls

    hä, warum gibts in 32bit systemen dann keinen syswow64 ordner, dann hätten 32 bit systeme nur eine 64bit regedit, was ja nich geht...
    oder versteh ich da jetzt was falsch?

    selbste wenn ich den registryeintrag so einfügen lasse:

    system("%windir%\\SysWOW64\\regedit.exe /s %windir%/MeineRegDatei.reg");
    system("%windir%\\system32\\regedit.exe /s %windir%/MeineRegDatei.reg");
    

    bekomm ich in windows 64bit keinen eintrag in die 64bit schicht...



  • WOW64 steht für "Windows On 'Windows 64-bit'"
    Auf 32bit-Systemen gibt es kein 64bit, also ist WOW64 nicht nötig 😉

    Vermutlich deshalb nicht, weil es in 64bit keine regedit.exe gibt.
    Versuchs mit: regedt32.exe



  • geeky schrieb:

    WOW64 steht für "Windows On 'Windows 64-bit'"
    Auf 32bit-Systemen gibt es kein 64bit, also ist WOW64 nicht nötig 😉

    Vermutlich deshalb nicht, weil es in 64bit keine regedit.exe gibt.
    Versuchs mit: regedt32.exe

    sry, ich brings nich hin..
    wie würd des dann bei mir aussehen?
    als bsp



  • 64bit Windows:

    // 32bit regedit starten:
    system("%windir%\\SysWOW64\\regedt32.exe /s %windir%/MeineRegDatei.reg");
    
    // 64bit regedit starten:
    system("%windir%\\system32\\regedt32.exe /s %windir%/MeineRegDatei.reg");
    

    32bit Windows:

    // 32bit regedit starten:
    system("%windir%\\system32\\regedt32.exe /s %windir%/MeineRegDatei.reg");
    
    // 64bit regedit starten: gibts nicht.
    

    Wenns nicht klappt lass das /s mal weg und schau obs Fehlermeldungen gibt...

    (btw. Dateien in den Windows-Ordner packen ist böse.)



  • geeky schrieb:

    64bit Windows:
    (btw. Dateien in den Windows-Ordner packen ist böse.)

    okay, werds mal testen... warum "böse"?



  • habs probiert leider fügt mir windows 64 bit den registry schlüssel nur in der 32bit registry schicht ein, nich in der 64-bit 😞
    wenn ich des /s weglasse kommt auch keine fehlermeldung...
    so sieht bei mir die .reg datei aus:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
    "Shell"="explorer.exe, %windir%/MeinProgramm.exe"
    

    liegts vielleicht daran, dass ich den shellwert ändern möchte und der irgenwie von windows gegen´s ändern geschützt ist?

    vielleicht sollte ich noch anmerken, dass ich mit einem 32bit programm den 64bit schlüssel hinzufügen will...



  • Wenn Du es von einem 32-Bit Programm machen willst, musst DU dies explizit angeben... siehe mein Artikel:
    http://www.codeproject.com/KB/system/Reflection.aspx


Anmelden zum Antworten