[.net/c#] Verandering in register wordt niet gelezen

Pagina: 1
Acties:

  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Hallo,

Ik heb een programma dat een key (connectionstring) uit het register leest. Om van database te veranderen heb ik 6 keys staan die ik hernoem om verbinding met de juiste database te maken. Dat ziet er dan zo uit:
  • Conncetionstring = "bladie bladie"
  • Conncetionstring1 = "bladie bladie server 1"
  • Conncetionstring2 = "bladie bladie server 2"
  • Conncetionstringenz = "bladie bladie server etc"
Het probleem is dat nadat ik de key hernoem (of weghaal) met regedit dan leest mijn programma nog steeds de oude waarde zelfs als de key niet meer bestaat 8)7

Heeft het windows register een cache? en hoe flush je die

Meestal gaat bovenstaande constructie goed maar vandaag heeft windws 7 er niet zo veel zin in :(

Overigens werkt het wel met een tweede exe..

[ Voor 3% gewijzigd door mr_taipan op 27-09-2013 12:23 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
mr_taipan schreef op vrijdag 27 september 2013 @ 12:09:
Overigens werkt het wel met een tweede exe..
Hoe bedoel je dat?

Kun je misschien een kleine testcase maken waar het mee mis gaat? Ik verwacht dat er toch wat anders mis gaat dan dat jij denkt, maar om dat goed te beoordelen geef je niet genoeg informatie.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 24-01 08:32
Verschil tussen 32 en 64 bit? Check de Wow6432Node eens? Oh wacht, ik lees verkeerd.

Maar hoe lees je de key uit, heb je wat code?

Btw. Je kan ook luisteren op changes in het register.

[ Voor 55% gewijzigd door FlowinG op 27-09-2013 15:26 ]


  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 27-01 08:15

Acid_Burn

uhuh

Open je de registry key wel opnieuw, of hou je die open?

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site


  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 21-01 01:41

ZaZ

Tweakers abonnee

Klinkt alsof jouw setting in de virtual store staat.
Jouw exe is waarschijnlijk niet 'UAC-aware' en omdat je waarschijnlijk naar een system-wide (HKCR o.i.d) hebt geschreven heeft Windows dan uit compatibiliteitsredenen dat gedeelte aangemaakt in de virtual store.
Elke keer wanneer je dan dat stukje uit gaat lezen pakt ie die. Ook kan je gewoon schrijven.
Als jouw programma in het manifest heeft waarin staat dat ie op de hoogte is van de regels die sinds Vista aangescherpt zijn zal de applicatie crashen omdat jouw exe niet elevated is en dus niet mag schrijven en/of lezen.

Dus requestedPrivileges met requestedExecutionLevel in jouw manifest meenemen is sowieso aan te raden zodat je gewoon een exceptie krijgt wanneer je wat fout doet. Daarnaast zal ie waarschijnlijk niet gaan werken zonder dat die requestedExecutionLevel op requireAdministrator staat.

Tenminste, ik vermoed dat daar jouw probleem ligt.

Lekker op de bank


  • EfBe
  • Registratie: Januari 2000
  • Niet online
riekt toch naar een 32bit app die leest uit de 32bit hive in de verder 64bit registry.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • zzattack
  • Registratie: Juli 2008
  • Laatst online: 20:43
Je antwoord staat hierboven waarschijnlijk al wel.
Mocht het een 64/32bit issue zijn (ga ik niet vanuit) dan kun je sinds .NET 4 een RegistryView gebruiken om specifiek de 32-bit variant van je key te openen. Of better yet, wegblijven uit de registry, zijn betere manieren voor, bijv. met de app.config settings file.

[ Voor 12% gewijzigd door zzattack op 07-10-2013 17:13 ]

Pagina: 1