Microsoft MVP성태의 닷넷 이야기
Vista, ShellExecute(,"runas",) 문제 [링크 복사], [링크+제목 복사],
조회: 16789
글쓴 사람
김성헌
홈페이지
첨부 파일
 

Vista 에서 ActiveX 로
exe 를 다운로드받아 실행시키는 런처를 만들려고 합니다.

그런데 다운로드를 하면 UAC 때문에 가상 디렉토리에 파일이 저장되게 되는데요,

ShellExecute 로 그 가상 path 를 실행하면 권한이 없다는 에러가 발생하고요,
ShellExecute 의 "runas" 로 실행하면 파일이 없다는 에러가 나는데,
"runas" 일때는 real path 를 주어야 하더군요. (ActiveX에 하드코딩된 리얼패스를 실행하면 잘 됨)

만약 가상 path 에 저장된 exe 의 real path 를 알아낼 수 있다면
ShellExecute("runas") 로 권한상승하면서 실행하기 문제를 해결할 수 있을 것 같은데,
아무리 찾아보아도 이것은 쉽지 않은 문제 같습니다.

비스타에서 가상패스->리얼패스 .. 알아내는 것이 가능한가요?








[최초 등록일: ]
[최종 수정일: 4/12/2007]


비밀번호

댓글 작성자
 



2007-04-17 10시44분
일단, Vista 에서는 아래와 같은 함수로 호출해 주시면 보호모드에서도 안전하게 액세스할 수 있는 경로를 얻을 수 있습니다.
wchar_t *szPath;
SHGetKnownFolderPath(FOLDERID_LocalAppDataLow, 0, NULL, &szPath);
그러니, 위의 폴더에 실행파일을 쓰고 실행해 주면 되지 않을까 싶네요. ^^
kevin25

NoWriterDateCnt.TitleFile(s)