애플리케이션별로 환경 변수를 조건부로 변경하여 Windows 사용자 문서 폴더에 스팸 폴더를 생성하는 프로그램을 중지합니다.

애플리케이션별로 환경 변수를 조건부로 변경하여 Windows 사용자 문서 폴더에 스팸 폴더를 생성하는 프로그램을 중지합니다.

인터넷상의 다른 질문과 여기 SuperUser의 질문에서 볼 수 있듯이(예:프로그램이 내 문서를 사용하지 못하도록 차단), Windows 사용자는 프로그램이 스스로 자신의 폴더를 사용자 문서 폴더에 추가하기로 결정하는 것이 매우 짜증스럽다는 것을 알게 됩니다.

음악이나 그림 폴더와 마찬가지로 사용자의 문서 폴더는 개인 파일을 위한 것이며 사용자에게 적합한 방식으로 관리, 구성 및 구성됩니다. 너무 많은 프로그램이 여기에 파일을 덤프하므로 실제 문서를 찾는 것이 금방 불가능해질 수 있습니다.

인터넷과 슈퍼유저를 검색하면 다음과 같은 다양한 조언을 찾을 수 있으며, 모두 질문에 대한 해결책이 아닙니다.이런 일이 발생하지 않게 하려면 어떻게 해야 합니까?

  • 문서 폴더를 다른 곳으로 옮긴 다음 시스템이 실제로 문서에 사용할 폴더인지 모르는 새 폴더를 만듭니다. (안돼: 나원하다내 문서를 어디에 저장했는지 알 수 있는 시스템은 다른 모든 경우에 유용합니다.)
  • 당신의 모든 것을 넣어실제문서 폴더 내부의 하위 폴더에 있는 문서. (좋지 않습니다. 왜 항상 내 문서에 접근하기 위해 한 수준을 파헤쳐야 하고 기본 수준의 모든 스팸 폴더를 지나쳐야 합니까?)
  • 정기적으로 폴더를 수동으로 정리하십시오. (좋지 않습니다. 그러면 많은 프로그램이 중단될 것입니다.)
  • 무단 폴더 생성을 방지하는 다양한 방법. (좋지 않습니다. 그러면 많은 프로그램이 중단될 것입니다.)
  • VM에서 프로그램을 실행합니다. (좋지 않음: 99%의 시나리오에서 과잉입니다.)
  • 해당 프로그램을 사용하지 마십시오. (좋지 않음: 그 프로그램을 사용해야 합니다.)

마지막으로 현재 사용하고 있는 솔루션에 도달할 수 있습니다. 이 솔루션은 최악의 솔루션이라고 생각합니다.

  • (선택 사항: 문제가 되는 폴더를 다른 곳으로 옮긴 다음 해당 위치를 다시 문서에 하드링크합니다.)
  • 숨다문서의 문제 폴더.

옙!

(이러한 스타일의 솔루션이 여전히 부적합한 이유에 대한 간단한 예를 들어 보겠습니다. 예를 들어 백업 소프트웨어를 사용자/문서에서 직접 가리킬 수 있거나 실제로 전체 폴더를 복사할 수 있어야 하며 무엇을 얻고 있는지 정확히 알 수 있어야 합니다. 또한 , 많은 사람들이 "숨김 파일 표시"를 켜두어야 합니다.)

슬슬 질문이 나오네요! – 이것은 단순한 호언장이 아닙니다! 마지막 참고 사항은 이 문제가 발생하는 이유는 프로그래머가 게으르고 사용자가 쓸 수 있다고 확신할 수 있는 위치에 파일을 덤프하기 때문이라는 점입니다. 사용 가능한 전용 AppData 폴더가 있음에도 불구하고 말입니다. 이 동작이 코딩되면 개발자만이 이를 변경할 수 있으며 대부분은 변경하지 않습니다.

그래서. 제가 상상할 수 있는 해결책은 단 하나뿐입니다. 바로 이것이죠.어찌됐든 사용자/문서의 위치를 ​​결정하는 환경 변수는 특정 프로그램마다 다르게 제시되어야 합니다.질문이 생겼습니다 -

이것이 어떻게 달성될 수 있습니까?

답변1

불행하게도 사용자 문서의 위치에 대한 환경 변수는 없습니다.

이 경로는 오히려 다음과 같은 API 함수에 의해 반환됩니다. SHGetKnown폴더경로 해당 폴더로 식별되는 알려진 폴더를 반환합니다. KNOWNFOLDERID 상수, 사용자별 문서 폴더의 경우 상수는 입니다 FOLDERID_Documents.

SHGetKnownFolderPath따라서 특정 프로그램에 대해 이를 변경하려면 시스템 전체에 대한 후크를 생성 하고 원하는 값을 반환하는 프로그램을 작성해야 합니다 . 그런 제품은 모르겠습니다.

기본 저장 위치를 ​​설정하기 위해 해당 제품의 구성 매개변수를 변경하는 것 외에는 다른 해결책이 없습니다. 그러한 매개변수가 없는 경우 가능한 유일한 조치는 개발자에게 불만을 제기하는 것입니다.

답변2

아마도 모든 프로그램에 대한 하나의 솔루션은 없을 것입니다. harrymc가 언급한 것처럼 이미 설치된 소프트웨어의 경우 프로그램에는 수정할 수 있는 설정이나 편집할 수 있는 레지스트리 항목이 있을 수 있습니다. 설치 중 폴더 생성이 걱정된다면 다음의 레지스트리 값을 수정하는 것이 좋을 것 같습니다.개인의그리고 (존재하는 경우){f42ee2d3-909f-4907-8871-4c22fc0bf756}, 아래에 있는 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders다른 폴더를 가리킵니다. 즉, 'C:\Users\\BadApps`는 설치 프로그램을 "속여" 해당 위치에 폴더를 생성합니다. 설치 후에는 값이 일반 경로로 복원됩니다. 자주 필요한 경우 이러한 값을 "전환"하기 위해 간단한 스크립트를 작성할 수 있습니다.

관련 정보