Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

getenv, SHGetFolderPath, RegOpenKeyEx, RegQueryValueEx - ne mogu da pristupim user folderu,

[es] :: C/C++ programiranje :: getenv, SHGetFolderPath, RegOpenKeyEx, RegQueryValueEx - ne mogu da pristupim user folderu,

[ Pregleda: 1653 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ghost2k3
Lat45.2508; Lon19.3919

Član broj: 25133
Poruke: 691
82.117.202.*

Jabber: ghost2k3
Sajt: www.zombo.com


+8 Profil

icon getenv, SHGetFolderPath, RegOpenKeyEx, RegQueryValueEx - ne mogu da pristupim user folderu,18.03.2014. u 10:38 - pre 122 meseci
Sve te fje mi rade iz test aplikacije normalno i vracaju path koji mi treba: %user%\local\appdata\temp (mozda sam pogresio tacan path u slovo, ali nije ni bitno)

E sad kada bilo koju od onih gore fja pozovem, bilo da zelim da pristupim preko environment variable, bilo direktno iz registryja da citam, uvek mi vraca sistemske foldere. Npr. C:\Windows\Temp, i slicno ...

Jednostavno ne mogu da pristup trenutno logovanom korisniku i njegovom temp folderu, jer je process pokrenut kao sistemski (mora tako ne mogu da menjam, bonjour process)

Da li je ikako moguce iz takvog procesa ocitati vrednosti nekih varijabli koje su vezane za korisnika? Korisnik je naravno ulogovan, pokrece aplikaciju, koja pokrece bonjour service, ...

Evo primer koda: mada je ispravan, ali ako neko zeli da vidi:

Code:

char  szPath[MAX_PATH+1];
DWORD dwDataSize=MAX_PATH+1;
HKEY hkeyDXVer;
long lResult;
TCHAR qq[MAX_PATH];

memset(szPath,0,MAX_PATH+1);
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\", 0, KEY_READ, &hkeyDXVer);
if(ERROR_SUCCESS == lResult)
{
    lResult = RegQueryValueEx(hkeyDXVer, L"Local AppData", NULL, NULL, (BYTE*)szPath, &dwDataSize);
    if(ERROR_SUCCESS == lResult)
    {
        }
}


Code:

        SHGetFolderPath(NULL, CSIDL_PROFILE, NULL, 0, qq);



Sav taj kod radi normalno u test aplikaciji.

Medjutim tamo gde treba da se izvrsi: prvi deo koda vraca na poziv RegQueryValueEx() = 2, sto znaci da path nije dobar, a drugi vraca neki sistemski folder, a ne %user%\..\..\

Kako mogu iz system process da dobijem user temp foler path -> to je ono krajnje sto mi treba, zbog cega sve ovo :)



Edit: kod je pisan u C, ne znam jel to pravi neku razliku u odnosu C++
 
Odgovor na temu

[es] :: C/C++ programiranje :: getenv, SHGetFolderPath, RegOpenKeyEx, RegQueryValueEx - ne mogu da pristupim user folderu,

[ Pregleda: 1653 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.