Benutzer mit den meisten Antworten
Registry

Frage
-
Hallo Leute
Ich habe ein echtes Problem. Ich will ein Programm schreiben, welches mir den Wert "%SystemRoot%\ShortcutArrow.ico,0" in die Zeichenfolge "29" des Pfades "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" in die Registry schreibt. Jedoch erhalte ich kein Ergebnis, weder eine Fehlermeldung, noch einen Key in der Registry.
Mein Code:
Imports Microsoft.Win32 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try 'Code 1: Dim regKey As RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons", True) regKey.SetValue(29, "%SystemRoot%\ShortcutArrow.ico,0") regKey.Close() 'Code 2: My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons", True).SetValue(29, "Erfolgreich") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, Application.ProductName) End Try End Sub End Class
Im Grunde genommen sollten beide Codes das Selbe bewirken, aber ist eigentlich auch egal, denn ich habe sie auch einzeln getestet. Leider erfolglos.
MFG Yves Riedener
Vielen Dank, Yves Riedener http://www.vanillapps.com
Antworten
-
Hi,
"unbedingt" ist immer etwas unglücklich gewählt.
Um eine Anwendung als x64 kompilieren zu lassen, gehe zu:
Projekteinstellungen (rechte Maustaste aufs Projekt -> Eigenschaften)
-> Reiter "Kompilieren"
-> Button "Erweiterte Kompilierungsoptionen..."
-> Ziel-CPU
-> x64Damit läuft deine Anwendung allerdings nicht mehr auf 32 Bit Systemen. AnyCPU wäre daher besser geeignet.
Zudem gibt es dann noch das Problemchen, dass andere 32 Bit Anwendungen dann wieder auf Wow6432Node zugreifen und deine Einstellung dort dann ggfs. nicht verfügbar ist. Je nachdem, was Du da eigentlich machen willst, wäre es daher notwendig, dass Du in beide Nodes schreibst.
BTW: Deine Sig ist doch etwas zu lang, zudem ist hier keine Projektbörse, in der die Informationen interessant wären.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort vorgeschlagen Thorsten DörflerModerator Dienstag, 26. Juli 2011 05:10
- Als Antwort markiert Yves Riedener Dienstag, 26. Juli 2011 18:03
Alle Antworten
-
Hi,
zum einen braucht dein Programm Administratorrechte, um überhaupt in HKLM schreiben zu können.
Zum anderen ist der richtige Weg auch davon abhängig, wie deine Anwendung kompiliert wurde und auf welchem OS sie läuft.
http://stackoverflow.com/questions/2039186/c-reading-the-registry-and-wow6432node-key
Falls deine Anwendung als 32 Bit kompiliert wurde, sie aber auf einem 64 Bit System läuft, könnte es sein, dass der Key im Wow6432Node vorhanden ist. Umgekehrt gilt das natürlich auch.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Thorsten DörflerModerator Sonntag, 24. Juli 2011 09:59
-
Also Admin-Rechte habe ich und im Wow.. Ordner ist der Key vorhanden, doch er muss unbedingt in die andere Registry wie kann ich mein Programm 64x fähig kompilieren?
Vielen Dank, Yves Riedener http://www.vanillapps.com Mein Computer: OS: Windows Ultimate x64 CPU: Intel i5 2.66GHz 4c RAM: 8GB Kingston Grafik: NVIDIA GeForce GTX 260 Point of View Speicher: -System: SSD von Samsung -Dateien: HD von WesternDigital Sprachen: -Deutsch: Muttersprache -Französisch: Am lernen -Englisch: Gutes Verständnis, Grammatik am lernen(zum Thema Computer) Programmiersprachen: -Visual Basic: Gut (Visual Basic 2010) -AutoIt: Gut (Version 3) -Java: Gut (Netbeans) -
Hi,
"unbedingt" ist immer etwas unglücklich gewählt.
Um eine Anwendung als x64 kompilieren zu lassen, gehe zu:
Projekteinstellungen (rechte Maustaste aufs Projekt -> Eigenschaften)
-> Reiter "Kompilieren"
-> Button "Erweiterte Kompilierungsoptionen..."
-> Ziel-CPU
-> x64Damit läuft deine Anwendung allerdings nicht mehr auf 32 Bit Systemen. AnyCPU wäre daher besser geeignet.
Zudem gibt es dann noch das Problemchen, dass andere 32 Bit Anwendungen dann wieder auf Wow6432Node zugreifen und deine Einstellung dort dann ggfs. nicht verfügbar ist. Je nachdem, was Du da eigentlich machen willst, wäre es daher notwendig, dass Du in beide Nodes schreibst.
BTW: Deine Sig ist doch etwas zu lang, zudem ist hier keine Projektbörse, in der die Informationen interessant wären.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort vorgeschlagen Thorsten DörflerModerator Dienstag, 26. Juli 2011 05:10
- Als Antwort markiert Yves Riedener Dienstag, 26. Juli 2011 18:03