C# Hjälp varför fungerar inte detta?

Permalänk
Medlem

C# Hjälp varför fungerar inte detta?

Varför fungerar inte det här? Jag får ingen error eller något sånt, den vill bara inte byta värde.

using Microsoft.Win32;

RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background", true); myKey.SetValue("OEMBackground", "0", RegistryValueKind.DWord);

Visa signatur

Det är bättre att fråga och verka dum, än att inte fråga och förbli det.

Permalänk
Medlem

myKey.Close();

För övrigt så är registret djävulens påfund.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Bör inte något av (eller båda) anropen ge något returvärde?
Kör du programmet i adminläge?
Har du kollat upp så parametrarna för setvalue är korrekta, exempelvis dubbelfnuttarna på nollan samt att det är typen dword som är eller ska användas?

Permalänk
Medlem

Fungerar fortfarande inte.
Adminläge är på, typen dword är rätt(borde vara det), kan inte byta ut fnuttar eller så för då går det inte att köra programmet.

Här är bild på vad jag vill ändra:
http://data.fuskbugg.se/skalman02/d312dc81_prblem213.jpg
Jag vill ändra Data på OEMBackground till 0.

Visa signatur

Det är bättre att fråga och verka dum, än att inte fråga och förbli det.

Permalänk
Medlem
Skrivet av riille:

Varför fungerar inte det här? Jag får ingen error eller något sånt, den vill bara inte byta värde.

using Microsoft.Win32;

RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background", true); myKey.SetValue("OEMBackground", "0", RegistryValueKind.DWord);

Då beror det på hur du kompilerar din kod.

Kör du Vista/Windows 7 så ändras posten på ett helt annat ställe, även fast du har angett en specifik sökväg. Detta beror även på hur det kompileras, 64bit, 32bit, AnyCPU. Jag tror att detta är huvudsakligen för att det ska finnas stöd för 32bit och 64bit applikationer samt att Microsoft har valt att separera dessa, precis som programmen i C:\Program och C:\Program (x86).

Jag kör 64-bit Windows 7 och kompilerar för x86 (32-bit), då läggs det i Wow6432Node
Jag testkör din kod och detta händer:
Ändrar jag...
local_machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background\\OEMBackground

så ändras det på...
local_machine\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background\\OEMBackground

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Okej tack för svaret Leedow! Men hur gör jag för att det verkligen ska ändras där jag vill?
Alltså: local_machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background\\OEMBackground

Visa signatur

Det är bättre att fråga och verka dum, än att inte fråga och förbli det.

Permalänk
Medlem
Skrivet av riille:

Okej tack för svaret Leedow! Men hur gör jag för att det verkligen ska ändras där jag vill?
Alltså: local_machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background\\OEMBackground

Det har jag faktiskt inget rakt svar på.
Kompilerar du det för respektive plattform så kommer du få olika resultat, där 64-bit-varianten är den du vill ha.

Här har du lite mer information om det:
http://social.msdn.microsoft.com/Forums/da-DK/netfx64bit/thre...

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Här hittade jag. Jag ska ju andra platform den ska köra på alltså 64-bit eller vad man ska säga.

Men jag kan inte ändra det:
http://data.fuskbugg.se/skalman02/ab9eb897_problem21.jpg

Hur ändrar jag till 64-bit?

Visa signatur

Det är bättre att fråga och verka dum, än att inte fråga och förbli det.

Permalänk
Medlem

Uppe i menyn har du [debug/release] samt [x86] bredvid i listboxar, tryck på x86listboxen och välj configuration manager, i nya fönstret kan du sedan skapa ny/ändra genom att välja new/edit (x64) i listboxarna.

Permalänk
Medlem

Tack Dalton! Tack!

Visa signatur

Det är bättre att fråga och verka dum, än att inte fråga och förbli det.