2011-10-24 6 views
1

저는 C++ 프로젝트에서 일하고 있습니다. 설치 한 소프트웨어의 경로를 얻어야합니다. (예 : skype.exe) C++ 코딩 또는 미망인 명령 프롬프트를 통해 경로를 찾는 방법이 있습니까Windows 7에서 .exe 파일의 파일 경로

답변

1

당신이 필요로하는 것과 당신이 그것을 원하는 방식에 달려 있습니다.

  1. GetEnvironmentVariable을 사용하면 PATH 변수를 가져 와서 이러한 경로를 검색 할 수 있습니다.
  2. Gabe가 말한 것처럼 App Paths 레지스트리 키를 사용할 수 있습니다. See also...
  3. 보통 레지스트리를 통해 경로를 찾는 꽤 명확한 응용 프로그램 별 방법이 있습니다. HKLM/소프트웨어 키 또는 Uninstall을 사용하십시오. 현지화 및 하드 코딩 응용 프로그램 이름에주의하십시오 ...
  4. 응용 프로그램을 시작하려는 경우 ShellExecute는 전체 경로가 필요하지 않으며 시작 메뉴의 "실행"대화 상자와 거의 유사합니다.
+0

감사합니다, C에서 경로를 얻는 방법은 무엇입니까 + +? 전체 경로가 필요합니다 .... – lankabeta

+0

'getenv' 함수가 있습니다. 이것이 의미하는 것이면. 그러나 분명히 레지스트리 액세스 기능이나 플랫폼 별 기능은 없습니다. – tenfour

+0

너무 슬프다 ... 나는 소프트웨어의 길을 찾아야한다 ........................... – lankabeta

1

레지스트리 키는 App Paths입니다. skype.exe의 경우 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\skype.exe

표준 Win32 API RegQueryValue을 호출하여 읽을 수 있습니다.

+0

감사합니다. C++에서 경로를 가져 오는 방법이 있습니까? – lankabeta

+0

예 - C++을 사용하여 제안 된 레지스트리 키를 쿼리 할 수 ​​있습니다. C++에서 메소드를 작성하여 주어진 OS에서 앱의 공통 위치를 검색 할 수도 있습니다. 귀하의 질문에, C + +를 내 운영 체제에 설치된 소프트웨어를 찾을 수있는 표준 라이브러리를 제공합니까, 물론 대답은 아닙니다. 이것은 다양한 운영 체제의 C++가 사용되는 모든 것에 대해 훨씬 적은 유지 관리 작업을 작성하는 것은 거의 불가능할 정도로 어려울 것입니다. – Nathanael

+0

윈도우 용, 특별히 윈도우 7이 필요합니다. – lankabeta

관련 문제