Hi,
Weet iemand waarom RegOpenKey en RegOpenKeyEx falen voor HKEY_CURRENT_USER? Ik krijg "ERROR_NOACCESS" terug.
Heb al geprobeerd met RegOpenCurrentUser in plaats van de constante HKEY_CURRENT_USER maar heb hetzelfde probleem.
Heb al code gezien die gebruik maakt van LoadUserProfile maar ik wil wel goed begrijpen wat er zich afspeelt.
In VB.Net met managed code lukt dit anderzijds wel,...
(moet dus wel zelf nog wat research doen, dacht van vraag dit even...)
Mijn process draait, veronderstel ik, onder een user profile,... Dus moet de HKEY_CURRENT_USER toch bestaan,...?


Er zijn 7 reacties in dit onderwerp
#1
Geplaatst op 12 oktober 2012 - 18:39
#2
Geplaatst op 12 oktober 2012 - 23:58
Zijn de Access Rights juist ingesteld? Op KEY_ALL_ACCESS of KEY_READ.
Visual Basic Code:
Visual Basic Code:
Bovenstaande code werkt bij mij in vb.net.
Greedzzz
Visual Basic Code:
Declare Auto Function RegOpenKeyEx Lib "advapi32.dll" ( ByVal hKey As IntPtr, ByVal lpSubKey As String, ByVal ulOptions As Integer, ByVal samDesired As Integer, ByRef phkResult As Integer ) As Integer Private Const KEY_READ As Integer = &H20019 Private Const KEY_ALL_ACCESS As Integer = &HF003F Private Const HKEY_CURRENT_USER As Integer = &H80000001
Visual Basic Code:
Dim hSubKey As IntPtr Dim result As Integer = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\ATI\ACE\AppDomains", 0, KEY_ALL_ACCESS, hSubKey) MsgBox("Error: " & result)
Bovenstaande code werkt bij mij in vb.net.
Greedzzz
#3
Geplaatst op 14 oktober 2012 - 00:33
Hi,
Ga nog eens een poging wagen. Was aan een tooltje begonnen maar de lol was eraf als ik merkte dat ik de current_user ook nodig heb en deze dus niet kon openen. Ik zie dat je VB6 code als voorbeeld geeft, ik kan op de systemen waar het fout op liep niet in VB6 proberen. (ik kan het tooltje ook in .Net schrijven maar ik iets wat om een bepaalde onverklaarbare reden niet werkt laat me niet gauw los...). Alsook is het niet in .Net dat ik bezig ben, anders had ik het daar gepost...
Ik kan op eens proberen in VB6 maar als het daar wel met zal werken weet ik nog niet waarom het niet werkt in de omgeving waarmee ik probeer... Zal eens in C ook proberen anders om te zien of het daar dezelfde problemen geeft.
Kan je mij eens zeggen op welk systeem dat jij dit getest hebt. .../XP/Vista/7/8
Kan je misschien ook eens proberen met
"HKEY_CURRENT_USER\Software\Classes"
Alvast bedankt...
Ga nog eens een poging wagen. Was aan een tooltje begonnen maar de lol was eraf als ik merkte dat ik de current_user ook nodig heb en deze dus niet kon openen. Ik zie dat je VB6 code als voorbeeld geeft, ik kan op de systemen waar het fout op liep niet in VB6 proberen. (ik kan het tooltje ook in .Net schrijven maar ik iets wat om een bepaalde onverklaarbare reden niet werkt laat me niet gauw los...). Alsook is het niet in .Net dat ik bezig ben, anders had ik het daar gepost...
Ik kan op eens proberen in VB6 maar als het daar wel met zal werken weet ik nog niet waarom het niet werkt in de omgeving waarmee ik probeer... Zal eens in C ook proberen anders om te zien of het daar dezelfde problemen geeft.
Kan je mij eens zeggen op welk systeem dat jij dit getest hebt. .../XP/Vista/7/8
Kan je misschien ook eens proberen met
"HKEY_CURRENT_USER\Software\Classes"
Alvast bedankt...
#4
Geplaatst op 14 oktober 2012 - 01:20
Mijn programmeerstijl was inderdaad wat vb6 achtig
maar het is geprogrammeerd in vb.net 2010.
K' heb het getest op win7 en 86x gecompileerd.
Ik heb het ook eens in C++ getest met "Software\\Classes":
Code:
Werkt nog steeds bij mij.
Grtz

K' heb het getest op win7 en 86x gecompileerd.
Ik heb het ook eens in C++ getest met "Software\\Classes":
Code:
#include <Windows.h> #include <iostream> int main() { HKEY hk; int result = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Classes", 0, KEY_ALL_ACCESS, &hk); std::cout << result << std::endl; system("pause"); return 0; }
Werkt nog steeds bij mij.
Grtz
#5
Geplaatst op 14 oktober 2012 - 02:00
Hi,
Dus jouw result is 0. Brrr, ben bezig van het één op het ander en raakte hier nog niet aan toe.
Update, werkt bij mij ook vanuit C++. Bizar
Update2, werkt bij mij in een ander klein test programma ook in de omgeving waar ik in bezig was, ... Er moet dus iets anders fout zitten in dat ander programma...
Code:
Dus jouw result is 0. Brrr, ben bezig van het één op het ander en raakte hier nog niet aan toe.
Update, werkt bij mij ook vanuit C++. Bizar
Update2, werkt bij mij in een ander klein test programma ook in de omgeving waar ik in bezig was, ... Er moet dus iets anders fout zitten in dat ander programma...
Code:
TestHKCU Proc Local hKey:HKEY Local szBuffer[260]:TCHAR szText szFmt, "%d",0 Invoke RegOpenKeyEx, HKEY_CURRENT_USER, TextStr("Software\Classes"), 0, KEY_ALL_ACCESS, Addr hKey .If Eax != ERROR_SUCCESS Invoke wsprintfA, Addr szBuffer, Addr szFmt, Eax Invoke MessageBoxA, NULL, Addr szBuffer, TextAddrA("oops..."), MB_TOPMOST .Else Invoke MessageBoxA, NULL, TextStr("ok"), TextStr("ok"), MB_TOPMOST Invoke RegCloseKey, hKey .EndIf Ret TestHKCU EndPGroetjes!

#6
Geplaatst op 14 oktober 2012 - 02:37
"Gevonden"
Een "bug" in de omgeving waarin ik werk. Eerst eens de TFM doorzoeken om zeker te zijn dat het een bug is... Daarna bug rapporteren...
Het werkt in een "Classic" project maar niet in een "Visual" project.
Update: Werkt niet in een Visual project in UNICODE mode. Wel in "ANSI" mode...
Update2: Volgens mij heeft het te maken met de uitlijning van de unicode string. Als ik hem in de Data sectie declareer is deze uitgelijnd op 4. Als ik hem inline declareer met TextStr is deze uitgelijnd op 1!!! Denk dat de bug daaruit voortkomt,...
Update3: Een unicode string moet voor RegOpenKeyEx blijkbaar uitgelijnd zijn op 2. Heb een test gedaan die deze express uitlijnt op 1 en het loopt fout.
2 code samples om te reproduceren
Code:
Code:
Groetjes, en thx!
solved
btw: dacht vb6 omwille vh "Declare" statement. Ik gebruik "DllImport". Maar had het moeten zien aan de "Integer" ipv "Long" en IntPtr types...
(met zo'n bugs verliest nen mens veel tijd)
Update4: In de MSDN Library staat de community content leeg. Terwijl op Technet deze ingevuld is, en daar heeft iemand dezelfde bug gehad... Ik snap niet waar het verschil tussen libraries komt,...
Geen Community content: http://msdn.microsof...p/ms724897.aspx
Wel community content: http://lab.technet.m...y/ms724897.aspx
Een "bug" in de omgeving waarin ik werk. Eerst eens de TFM doorzoeken om zeker te zijn dat het een bug is... Daarna bug rapporteren...
Het werkt in een "Classic" project maar niet in een "Visual" project.
Update: Werkt niet in een Visual project in UNICODE mode. Wel in "ANSI" mode...
Update2: Volgens mij heeft het te maken met de uitlijning van de unicode string. Als ik hem in de Data sectie declareer is deze uitgelijnd op 4. Als ik hem inline declareer met TextStr is deze uitgelijnd op 1!!! Denk dat de bug daaruit voortkomt,...
Update3: Een unicode string moet voor RegOpenKeyEx blijkbaar uitgelijnd zijn op 2. Heb een test gedaan die deze express uitlijnt op 1 en het loopt fout.
2 code samples om te reproduceren
Code:
HKEY hk; HLOCAL mem = LocalAlloc(LPTR, 260); char * pc = (char*)mem; pc++; wchar_t * pwc = (wchar_t*)pc; lstrcpy(pwc, TEXT("Software\\Classes")); int result = RegOpenKeyExW(HKEY_CURRENT_USER, pwc, 0, KEY_ALL_ACCESS, &hk); if(result) { TCHAR szMsg[100]; _stprintf(szMsg, TEXT("Error %d"), result); MessageBox(NULL, szMsg, TEXT("oops..."), MB_TOPMOST | MB_IConerror); } LocalFree(mem);
Code:
TestHKCU Proc Uses Ebx Local hKey:HKEY Local szBuffer[260]:TCHAR szText szFmt,"%d",0 Int 3 Invoke LocalAlloc, LPTR, 260 Mov Ebx, Eax And Eax, 3 .If Eax Invoke MessageBox, NULL, TextStr("not aligned on 4"), TextStr("ok"), MB_TOPMOST Or MB_IConerror .Else Invoke MessageBox, NULL, TextStr("aligned on 4"), TextStr("ok"), MB_TOPMOST .EndIf ; misalign... :P Add Ebx, 1 Invoke lstrcpy, Ebx, TextStr("Software\Classes") Invoke RegOpenKeyEx, HKEY_CURRENT_USER, Ebx , 0, KEY_ALL_ACCESS Or 0100H, Addr hKey .If Eax != ERROR_SUCCESS Invoke wsprintfA, Addr szBuffer, Addr szFmt, Eax Invoke MessageBoxA, NULL, Addr szBuffer, TextAddrA("oops..."), MB_TOPMOST .Else Invoke MessageBox, NULL, TextStr("ok"), TextStr("ok"), MB_TOPMOST Invoke RegCloseKey, hKey .EndIf Sub Ebx, 1 Invoke LocalFree, Ebx Ret TestHKCU EndP
Groetjes, en thx!
solved
btw: dacht vb6 omwille vh "Declare" statement. Ik gebruik "DllImport". Maar had het moeten zien aan de "Integer" ipv "Long" en IntPtr types...
(met zo'n bugs verliest nen mens veel tijd)
Update4: In de MSDN Library staat de community content leeg. Terwijl op Technet deze ingevuld is, en daar heeft iemand dezelfde bug gehad... Ik snap niet waar het verschil tussen libraries komt,...
Geen Community content: http://msdn.microsof...p/ms724897.aspx
Wel community content: http://lab.technet.m...y/ms724897.aspx
#7
Geplaatst op 14 oktober 2012 - 16:02
Meestal gebruik ik ook DLLImport daarom dat ik het eens niet deed 
Aan het programmeren in MASM zie ik. Welke IDE gebruik je?
Heb me dat ook al eens afgevraagd, Google weet het antwoord
:
http://go4answers.we...sdn-118989.aspx
Technet is suppose to be geared toward the IT Professional roles (e.g. DBA, Admin, etc.) and the Development Center (MSDN) is suppose contain information more appropriate for developers. But for SQL Sever, there's very little difference between the two sites: SQL Server Books Online (the primary product documentation) is published to both. There may be some differences in the types of white papers that get published to these sites though.
Groetjes

Aan het programmeren in MASM zie ik. Welke IDE gebruik je?
Citeren
In de MSDN Library staat de community content leeg. Terwijl op Technet deze ingevuld is, en daar heeft iemand dezelfde bug gehad... Ik snap niet waar het verschil tussen libraries komt,...
Heb me dat ook al eens afgevraagd, Google weet het antwoord

http://go4answers.we...sdn-118989.aspx
Technet is suppose to be geared toward the IT Professional roles (e.g. DBA, Admin, etc.) and the Development Center (MSDN) is suppose contain information more appropriate for developers. But for SQL Sever, there's very little difference between the two sites: SQL Server Books Online (the primary product documentation) is published to both. There may be some differences in the types of white papers that get published to these sites though.
Groetjes
#8
Geplaatst op 14 oktober 2012 - 20:45
DieterVB, op 14 oktober 2012 - 16:02, zei:
Aan het programmeren in MASM zie ik. Welke IDE gebruik je?
QEditor , EasyCode en OllyDbg en Visual Studio zijn mijn meest gebruikelijke tools
DieterVB, op 14 oktober 2012 - 16:02, zei:
Heb me dat ook al eens afgevraagd, Google weet het antwoord 

Wat het verschil was qua inhoud en doelpubliek dat wist ik al. Maar als ze naar dezelfde inhoud verwijzen, waarom heb je dan niet dezelfde "Community Content" op zowel technet als op de MSDN. Ze zouden naast enkel delen vd library op beide sites weer te geven ook de comments op beide weergeven,... Dan had ik dit "gedrag van RegOpenKeyEx" al gevonden
Groetjes
Ook met taq Solved voorzien
Solved
VBA (for applications) →
Microsoft Excel ® →
Formule Van Een Cel Met Goed Of Fout Beantwoorden?Begonnen door pascalbianca , 25 jun 2018 |
|
![]()
|
||
Solved
Andere programmeertalen →
PHP →
Fout In Sql En Weet Niet Wat.Begonnen door pascalbianca , 29 mrt 2016 |
|
![]()
|
||
Solved
Andere programmeertalen →
Andere programmeertalen →
Sqlite QueryBegonnen door thijs , 07 apr 2015 |
|
![]()
|
||
Solved
Andere programmeertalen →
Java →
Xml Bestand Vanop Internet Uitlezen In Android StudioBegonnen door Prior , 10 jan 2015 |
|
![]()
|
||
Solved
VBIB Community →
Mededelingen →
SchoonheidsfoutjeBegonnen door doebi , 22 dec 2014 |
|
![]()
|
0 gebruiker(s) lezen dit onderwerp
0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers