Laden...

32-Bit Applikation auf einem 64-Bit System in der Regisry speichern

Erstellt von Bonvie vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.114 Views
Bonvie Themenstarter:in
173 Beiträge seit 2006
vor 14 Jahren
32-Bit Applikation auf einem 64-Bit System in der Regisry speichern

Hallo an alle,
ich habe eine Frage zu meiner 32-Bit Applikation auf einem 64-Bit System. Leider kann ich es nicht selbst testen und habe bis jetzt nichts Gescheites zum lesen gefunden.
Ich möchte die FormWindowState in der Registry pro Benutzer ablegen nun haben mir Kunden gesagt das sie das Programm nicht auf einem 64-Bit System aufbekommen. Kann es an dem folgenden Code liegen?

private void getWindowPosition()
{
   this.WindowState = FormWindowState.Normal;
   
   RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"Software\MeineSW\Programm");
   if (regKey != null)
   {
      if (FormWindowState.Maximized.ToString() == (string)regKey.GetValue("WindowState", FormWindowState.Normal.ToString()))
          this.WindowState = FormWindowState.Maximized;
   }
}

private void saveWindowPosition()
{
   RegistryKey regKey = Registry.CurrentUser.CreateSubKey(@"Software\MeineSW\Programm");
   regKey.SetValue("WindowState", this.WindowState.ToString());
   regKey.Close();
}

Bisher habe ich herausgefunden, das ein 32-Bit Applikation nicht den 64-Bit Bereich lesen kann, aber das wäre in meinem Fall egal, ich käme ja mit den 32-Bit Bereich super längs. Oder ist der CurrentUser Bereich bereits ein 64-Bit Bereich ?

Danke und Gruß
Bonvie

F
10.010 Beiträge seit 2004
vor 14 Jahren

Man speichert solche sachen nicht in die Regisrty.

Dafür gibt es den Userbereich der Settings.

J
237 Beiträge seit 2008
vor 14 Jahren

Beim Programmieren löst man die Probleme, die man nicht hätte, programmierte man nicht.

Bonvie Themenstarter:in
173 Beiträge seit 2006
vor 14 Jahren

Danke erstmal, dann schaue ich nochmal warum ich nur den einen Wert in der Registry abgelegt habe. Das hatte mal ein Grund, der mir jetzt nicht mehr einfallen will.
Den Rest habe ich nämlich in der config Datei

Gruß
Bonvie

3.971 Beiträge seit 2006
vor 14 Jahren

Bei einer 32 Bit App auf einem 64 Bit Vista oder höher sollten keine Probleme auftreten, wenn die Registry von der selben Anwendung gelesen oder geschrieben wird. Windows biegt den Software-Pfad automatisch bei jedem Zugriff um (genauso Zugriffe aufs FileSytem).

Probleme treten hingegen auf, wenn eine 32 Bit App einen Wert in der Registry speichert und eine 64 Bit Anwendung diesen wert auslesen möchte. Grund: Der Wert liegt unter HKLM\Software\SysWOW64\Wert und nicht wie von der 64Bit Anwendung erwartet unter HKLM\Software\Wert.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...