Aufruf der Registry von totalcmd aus ist anders

German support forum

Moderators: Hacker, Stefan2, white

franc
Senior Member
Senior Member
Posts: 263
Joined: 2005-10-27, 14:09 UTC

Aufruf der Registry von totalcmd aus ist anders

Post by *franc »

Hallo,

ich hatte ein Registryproblem das mich viel Zeit gekostet hatte, weil ich erst sehr spät auf die Lösung kam:

Unter Windows 7 (prof. 64 Bit) rief ich regedit über den Total Commander (7.56a) auf (über das Starter-Menü, aber auch über die Kommandozeile ist es das gleiche).
Ich erstellte unter HKLM (...Windows NT/Current Version/Winlogon/) einen Schlüssel aber dieser wirkte sich nicht aus.

Erst nachdem ich regedit "normal" über "Ausführen" (WIN+R) gestartet hatte, wurde dieser Schlüssel für das System wirksam.

Ich kann hier auch den Schlüssel, den ich unter totalcmd > regedit erstellt hatte gar nicht sehen und umgekehrt.
Beide Schlüssel sind aber jeweils da.

Regedit von totalcmd aus gestartet:

Image: http://img1.uploadscreenshot.com/images/orig/9/25114054188-orig.jpg


Von WIN+R aus gestartet:

Image: http://img1.uploadscreenshot.com/images/orig/9/25114064633-orig.jpg

Ist das normales Windows7-Verhalten?
Warum ist das so?
Wenn regedit läuft, läuft es jeweils unter dem selben Benutzer.

franc
User avatar
Dalai
Power Member
Power Member
Posts: 9989
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *Dalai »

franc wrote:Ist das normales Windows7-Verhalten?
Nein, es ist ein normales 64 Bit Verhalten. Nicht nur Dateien und Verzeichnisse werden durch WoW64 umgeleitet sondern auch Registry-Zweige. Deshalb findest du deinen Eintrag, den du über die 32 Bit regedit gemacht hast, im gleichnamigen Zweig.

Lösungsmöglichkeiten:
  • systemrelevante Dinge wie regedit nur über Start > Ausführen starten
  • im TC temporär die Umleitung ausschalten mittels cm_SwitchX64Redirection in der Kommandozeile oder auf einem Button, um die richtige regedit.exe zu starten; dabei aber nicht vergessen, den Befehl danach erneut auszuführen, weil sonst andere Sachen nicht funktionieren!
  • Button/Startermenü-Eintrag mit dem Pfad zur "richtigen" regedit.exe anlegen: %SystemRoot%\Sysnative\regedit.exe
Oder du wartest auf die 64 Bit Version des TC, was aber noch dauern könnte ;).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Windows X64 hat zwei verschiedene Registry editoren:
32Bit: %windir%\sysWOW64\regedt32.exe
64Bit: %windir%\sysnative\regedt32.exe
Um explizit den einen oder den anderen Registry Editor aufzurufen kannst du z.B. entsprechende Buttons mit den obigen Pfaden anlegen.

Wenn du einfach nur regedit.exe startest, dann wir je nachdem ob der aufrufende Prozess 32 oder 64 bittig ist, entweder der eine oder der andere gestartet.

Für die Registry gibt es analog zu der Dateisystem Umleitung / (MSDN:File System Redirector) auch einen (MSDN:Registry Redirector).
Die meisten Pfade sind gemeinsam, aber einige Pfade sind eben je nach dem ob ein 32Bit oder 64 Bit Prozess darauf zugreift unterschiedlich.(MSDN:Registry Keys Affected by WOW64)

Fies ist das z.B. wenn du ein REG-File mit Einträgen die für 64Bit gedacht sind, per Doppelklick aus dem TC in die Registry übernehmen willst.
Siehe auch Running .reg-files from Total Commander on Win 7 x64 issue, lässt sich allerdings mit "Dateien->Interne Verknüpfung" umgehen.

Gruß
Holger
franc
Senior Member
Senior Member
Posts: 263
Joined: 2005-10-27, 14:09 UTC

Post by *franc »

Puh, das hab ich nicht gewusst.

Im Klartext: wenn ich vom totalcmd Regedit aufrufen will, dann mach ich das auf einem Windows 7 mit 64 Bit immer über:

%windir%\sysnative\regedt32.exe

oder habe ich das jetzt immer noch nicht verstanden?
Was hilft es mir, die Registry zu ändern, wenn das System das überhaupt nicht registriert?
Warum gibt es dann überhaupt noch das 32-Bit-Regedit?
JOUBE
Power Member
Power Member
Posts: 1675
Joined: 2004-07-08, 08:58 UTC

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *JOUBE »

Man kann es allgemein etwa so zusammenfassen:

Man steigt klugerweise mit seinen davon abhängigen Systemen (also Windows7) erst auf 64 Bit um, wenn das zugrundeliegende Basissystem (der TC) in 64 Bit zur Verfüging steht...

JOUBE
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Nicht ganz richtig: über die unterschiedlichen Aufrufe wird quasi Regedit einmal mit und einmal ohne Redirection gestartet.
Was hilft es mir, die Registry zu ändern, wenn das System das überhaupt nicht registriert?
Nun das System registriert das schon richtig, und zwar so wie eine 32Bit Programm es gebrauchen würde (z.B. wenn reg-Scripte von einem 32bit Programm installiert werden).
Das System weiss aber nicht das du jetzt gerade die Sicht auf die 64Bit Welt habe willst, wenn du einfach nur regedit aus einem 32Bit Prozess heraus startest.
Warum gibt es dann überhaupt noch das 32-Bit-Regedit?
Könnte ja auch sein, dass du eben nachsehen willst was ein 32 Bit Programm aus der Registry liest oder manuell etwas einstellen willst was 32Bit Programme beeinflussen soll.

Gruß
Holger
franc
Senior Member
Senior Member
Posts: 263
Joined: 2005-10-27, 14:09 UTC

Post by *franc »

So ein Misthaufen.
Ist das denn nun so, dass ein 32Bit-Programm immer auf die 32-bittigen Registrywerte zugreift und die 64-bittigen gar nicht sieht?

Das ist ja verwirrend.

Also muss ich abhängig davon, für WEN ich einen Registrywert ändern will, die 32-Bit-regedit-Version aufrufen oder die 64-Bit?

Hohoho, das ist ja toll.

Irgendwie freut mich das aber auch ein kleines bißchen, weil ich stundenlang an einem vermeintlichen Fehler rumgesucht hatte und schon an mir selbst verzeweifelte und dachte ich bin plemplem.
Bis ich zufällig mal regedit über das System gestartet hatte, dann ging es plötzlich. Dann wurde mir auch klar, dass da unterschiedliche Werte waren.
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *HolgerK »

JOUBE wrote:Man kann es allgemein etwa so zusammenfassen:

Man steigt klugerweise mit seinen davon abhängigen Systemen (also Windows7) erst auf 64 Bit um, wenn das zugrundeliegende Basissystem (der TC) in 64 Bit zur Verfüging steht...
Nein.
Man sollte, wenn man in der Registry oder in Systemverzeichnissen herumhantiert, schon wissen was da passiert.
Das hat relativ wenig damit zu tun ob der TC 32 oder 64Bit ist.

Ein Script oder CMD Batch der Änderungen in der Registry für ein 32Bit Programm eintragen soll wird z.B. nicht korrekt ausgeführt wenn er aus einem 64 Bit Programm gestartet wird.

Gruß
Holger
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

franc wrote:So ein Misthaufen.
Ist das denn nun so, dass ein 32Bit-Programm immer auf die 32-bittigen Registrywerte zugreift und die 64-bittigen gar nicht sieht?
Siehe meinen link zur MSDN:(MSDN:Registry Keys Affected by WOW64)
Nicht alle Pfade sind davon betroffen.
Ich gebe allerdings zu, dass das verwirrend sein kann (bin selber auch schon mal darauf reingefallen) vor allem mit den Änderungen von XP/Vista x64 nach Windows 7 x64.
Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP: A subset of redirected registry keys are also reflected to keep the keys and their values synchronized between 32-bit and 64-bit views of the registry. Registry reflection was removed starting with Windows 7 and Windows Server 2008 R2. For more information, see Registry Reflection.
wobei das unter Windows7 dann eigentlich wieder etwas einfacher und eindeutiger geworden ist.

Gruß
Holger
franc
Senior Member
Senior Member
Posts: 263
Joined: 2005-10-27, 14:09 UTC

Post by *franc »

Also gut, ich habe mir im Starter jetzt zwei Registry-Starteinträge gemacht, einen für 32 Bit, einen für 64 Bit, dann vergesse ich auch nicht, den richtigen auszuwählen, wenn ich das aufrufe.
JOUBE
Power Member
Power Member
Posts: 1675
Joined: 2004-07-08, 08:58 UTC

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *JOUBE »

HolgerK wrote:
JOUBE wrote:Man kann es allgemein etwa so zusammenfassen:

Man steigt klugerweise mit seinen davon abhängigen Systemen (also Windows7) erst auf 64 Bit um, wenn das zugrundeliegende Basissystem (der TC) in 64 Bit zur Verfüging steht...
Nein.
Ich habs geahnt, ich hätte doch nicht auf das ironische Smiley am Ende meines Zwischenrufs verzichten sollen. Ironie ist eben doch nicht für jeden selbstverklärend... ;-)
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *HolgerK »

JOUBE wrote:
HolgerK wrote:
JOUBE wrote:Man kann es allgemein etwa so zusammenfassen:

Man steigt klugerweise mit seinen davon abhängigen Systemen (also Windows7) erst auf 64 Bit um, wenn das zugrundeliegende Basissystem (der TC) in 64 Bit zur Verfüging steht...
Nein.
Ich habs geahnt, ich hätte doch nicht auf das ironische Smiley am Ende meines Zwischenrufs verzichten sollen. Ironie ist eben doch nicht für jeden selbstverklärend... ;-)
Nun, das muss man ja auch nicht unbedingt ironisch verstehen. Oder sollte ich dich so verstehen, dass du vorhast niemals ein 64Bit Windows noch einen 64 Bit TC zu benutzen. ;-)
Das Problem existiert ja gerade auch in dieser Richtung:
HolgerK wrote:Ein Script oder CMD Batch der Änderungen in der Registry für ein 32Bit Programm eintragen soll wird z.B. nicht korrekt ausgeführt wenn er aus einem 64 Bit Programm gestartet wird.
Gruß
Holger
JOUBE
Power Member
Power Member
Posts: 1675
Joined: 2004-07-08, 08:58 UTC

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *JOUBE »

HolgerK wrote:Oder sollte ich dich so verstehen, dass du vorhast niemals ein 64Bit Windows noch einen 64 Bit TC zu benutzen. ;-)
Vielleicht so? Wenn der TC in 64 Bit erscheint, gibt es keine 32 Bit Probleme unter Windows mehr [1] [2].

JOUBE

[1] Weil man zu/ab dem Zeitpunkt keine 32Bit-Programme mehr einsetzt...
[2] Dieses Mal aber wirklich: Mehrere Ironie-Smileys locker über den Text verteilt, selbstständig einfügen.
franc
Senior Member
Senior Member
Posts: 263
Joined: 2005-10-27, 14:09 UTC

Re: Aufruf der Registry von totalcmd aus ist anders

Post by *franc »

JOUBE wrote:...Wenn der TC in 64 Bit erscheint...
Wenn dann auch der Messias da ist ;)
franc
Senior Member
Senior Member
Posts: 263
Joined: 2005-10-27, 14:09 UTC

Post by *franc »

Der Messias ist da!

:) :) :)
Post Reply