You'll get invited to our Meetups as soon as they're scheduled!



| Pathman | |
|
Hei
Takk for response. Jeg alrede brukt R.Rootkey := HKEY_LOCAL_MACHINE. med R.OpenKey('SOFTWARE\ORACLE\KEY_OraDb10 Dere kan se på alle kode Jeg har brukt tidligere på delphi 6 R := TRegistry.Create; R.Access := KEY_READ; R.RootKey := HKEY_LOCAL_MACHINE; if R.OpenKey('SOFTWARE\ORACLE\KEY_OraDb10 g_home1', FALSE) then begin // Hent ORACLE_HOME direkte fra ORACLE-nøkkelen ORACLE_HOME := R.ReadString('ORACLE_HOME'); ORACLE_HOME_NAME := R.ReadString('ORACLE_HOME_NAME'); R.CloseKey; Den virker ikke . Hilsen Pathman |
|
| Alf Christophersen | |
|
|
Pathman
Du har adminstatus når du gjør dette? Hvis du skal gjøre dette som vanlig bruker må du si openkeyreadonly etc. Openkey returnerer ellers alltid False. |
| Rune Moberg | |
|
Du har allerede fått nok spor til å løse dette på en enkel måte?
Hvis du starter regedit fra en 64-bit prosess, hvor finner du verdien du søker? - Dersom den ligger rett under HKLM\Software, så må du slå av redirection for å nå denne i en 32-bit prosess. (se mitt kodeeksempel) Hvis du ikke gjør dette, så kan jeg GARANTERE deg at du ikke vil få til en skit. - Dersom verdien ligger under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node, Studer forskjellene du ser ved å starte %systemroot%\system32\regedit.exe vs %systemroot%\SysWOW64\regedit.exe. Den ene regediten er ren 64-bit og viser deg alt som det er, den andre er den gamle 32-bit versjonen som tydelig viser at HKLM\Software for 32 bit prossesser er redirigert til Wow6432Node. Mest sannsynlig må du installere Oracle sin 32-bit klient. Det er vanskelig å mikse 32-bit og 64-bit kode. (Du kan IKKE linke mot 64-bit DLLer på noe som helst vis) |
|
| Pathman | |
|
---- Dersom verdien ligger under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node,
Den verdier finnes , jeg forandret kode ,den hjelper ikke , R.OpenKey('SOFTWARE\Wow6432Node\ORACLE denne verdien vises ikke fortsett tomt string . R := TRegistry.Create; R.Access := KEY_READ; R.RootKey := HKEY_LOCAL_MACHINE; if R.OpenKey('SOFTWARE\Wow6432Node\ORACLE\K // Hent ORACLE_HOME direkte fra ORACLE-nøkkelen ORACLE_HOME := R.ReadString('ORACLE_HOME'); ORACLE_HOME_NAME := R.ReadString('ORACLE_HOME_NAME'); R.CloseKey; Den virker ikke . Hilsen Pathman |
|
| Lars Fosdal | |
|
|
Ref. tidligere post fra Alf...
Feiler den på OpenKey eller på ReadString? Dersom den feiler på OpenKey: har du prøvd OpenKeyReadOnly? |
| Pathman | |
|
Hei
takk for sist Jeg har prøved med både OpenKey og OpenKeyReadOnly . Begge to gir true verdi . Men R.readstring gir tomt verdi . Hilsen Pathman |
|
| Lars Fosdal | |
|
|
|
| Rune Moberg | |
---- Dersom verdien ligger under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node, Hvorfor sitter jeg igjen med følelsen av at du ikke har forstått en tøddel av det jeg har skrevet hittil? Du sier selv at verdien befinner seg under \Software\Oracle når du benytter Registry Editor (hvis du har startet denne fra Start menyen, så er det 64-bit versjonen -- bekreft dette med Task Manager). Hvorfor køler du nå rundt under Wow6432Node?!? -- Rune |
|
| Alf Christophersen | |
|
|
Om du ikke allerede har fått dette til, forsøk følgende korrigering:
Rett Openkey("Software\.........") til Openkey("\Software\............." Ser av egen bruk av registry at nøkkelen starter med '\' Ant. derfor du ikke får det til. Lykke til |
| Hamid Reza Bahador | |
|
|
Slik som Lars sier, bruk Process Monitor from Microsoft (SysInternals) for å debugge og se hva slags verdier du får lese og hva som ikke.
|


