응용 프로그램이 설치된 경로를 얻고 싶습니다. 레지스트리에 내 응용 프로그램의 경로를 제공하는 항목이 있습니다.이 스크린 샷을 참조하십시오. http://i56.tinypic.com/2ly1l6s.jpg레지스트리에서 값 읽기 C++
내 응용 프로그램이있는 경로를 읽고 싶습니다. 즉, 나는 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);
이것은 작동하지 않습니다, 정크 문자가 인쇄됩니다. 고맙습니다.
사용하는 컴파일러/개발 도구를 지정하는 것이 유용 할 수 있습니다. – vsz
Visual Studio C++ 2010, windows 7을 사용합니다. –
argv []의 경로에 어떤 문제가 있습니까? – Andrei