Чтение значения из реестра C ++

Я хочу получить путь, по которому установлено приложение. В реестре есть запись, в которой указан путь к моему приложению, см. Этот снимок экрана: http://i56.tinypic.com/2ly1l6s.jpg

Я хочу прочитать путь, по которому находится мое приложение. Другими словами, мне нужна часть C: \ Projects \ MyApplication \ MyApplication.exe. Вот что я пытаюсь сделать:

HKEY hKey;
wchar_t mydata[2048];
DWORD dataLength = sizeof(mydata);
DWORD dwType = REG_SZ;
LPVOID messagecaliss;
LONG regOpenCriss = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", 0, KEY_QUERY_VALUE, &hKey);
GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL, GetLastError(), NULL,(LPTSTR) &messagecaliss, 0, NULL );
if (regOpenCriss == ERROR_SUCCESS) {
RegQueryValueEx(HKEY_CURRENT_USER, "TestApplication", 0, &dwType, (BYTE*)mydata, &dataLength);
wprintf(L"%s\n", mydata);
system("PAUSE");
}
else
    MessageBox(NULL,(LPCTSTR)messagecaliss,"ERROR",MB_OK|MB_ICONINFORMATION);

Это не работает, печатаются ненужные символы. Большое спасибо.

5
задан jack excell 12 June 2011 в 21:54
поделиться