Win32에서 주 스레드의 현재 작업 디렉터리는 실행 파일이 시작된 위치로 설정됩니다. 문제는 다른 곳으로 SetCurrentDirectory()을 호출 한 후에도 프로세스가이 초기 시작 디렉토리 (프로세스 탐색기와 같은 도구로 확인할 수 있음)를 참조하는 파일 시스템 개체를 가지고 있다는 것입니다. 즉,이 디렉터는 방법.Win32 현재 디렉터리, 잠금 및 셸 통합
여기 아무도 해킹하지 않는 해결책을 알고 있습니까? 나는 익스플로러 (HKCR \ Directory \ shell 레지스트리 키에 동사 추가)와 통합 된 프로그램으로이 문제를 특별히 실행하고 있는데, 마우스 오른쪽 버튼으로 클릭 한 디렉토리에서 파일을 처리해야하며 불가능한 소스 디렉토리를 제거해야한다. 초기 작업 디렉토리가로 설정되었으므로 마우스 오른쪽 버튼으로 클릭 한 디렉토리를 추측했습니다.
EDIT : "helper launch-from-sane-directory 사용"접근법에 대해 알아 보겠습니다. 그것은 우아하지 않을 수도 있지만 그것은 작동하고 어떤 더러운 해킹이 필요하지 않습니다.
프로세스가 자체가 아닌 디렉토리에 대한 참조를 보유하고 있습니까? –
예, SetCurrentDirectory()와 MessageBox()를 수행하는 간단한 프로그램을 만들었는지 확인하기 위해 디렉토리를 잠근 상태로 유지합니다. ( – snemarch
retag : win32를 제거하고 현재를 제거했습니다. 현재는 현재 쓸모가 없습니다. – George