명령 행에서 실행 파일의 호환성 모드를 어떻게 설정합니까?


21

XP 옵션과호환성 (오른쪽 클릭 / 속성 / 호환성 ... 그 중 하나 : 예 :)을 명령 줄에서 실행 파일로 설정하는 방법이 있습니까?

또는 더 나은 방법은 전체 디렉토리 (디렉토리의 실행 파일)와 호환성을 설정하여 컴파일 / 빌드되는 모든 실행 파일에 이미 "플래그"가 있도록하는 방법이 있습니까?


1
@CodyGray-이전 컴파일러 IDE (Win95에서)를 사용하고 있기 때문에; 새로운 것으로 변경하면 현재 준비되지 않은 비용이 발생할 수 있습니다. 빌드하고 IDE에서 시작하면 모든 것이 충돌합니다. 호환성을 놓고 탐색기에서 시작하면 작동합니다. 어느 것이 나에게 충분합니다. 빌드 후마다 호환성 플래그를 넣는 것을 좋아하지 않습니다. 그러므로 질문은 ... :)
Rook

1
@CodyGray - 글쎄, 내가 할 수 당신에게 모든 이야기를주고 있지만, 난 그냥 ... 동안 이상 열어 질문을 떠날거야, 그래서 나는 commments 여기 (또는 그 중 3 개) 상자에 맞는 것입니다 의심
루크

1
아, 기사에서 읽은 것을 기억한다는 것을 알았습니다. 나는 마침내 그것을 발견하고 후손에 대한 답변을 게시했습니다. :-) 잔소리를 무시해도되지만 다른 방법을 찾게 될지는 진심으로 의심합니다.
코디 그레이

답변:


29

응용 프로그램 호환성 플래그를 설정하거나 변경할 수있는 도구를 모릅니다.

그러나 응용 프로그램 호환 플래그는 레지스트리 (사용자 또는 시스템 부분)에 저장됩니다.

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

따라서 필수 항목을 작성하기 위해 표준 명령 행 레지스트리 편집기를 사용할 수 있습니다.

reg.exe Add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\MyApp\Test.exe" /d "WINXPSP3"

사용 가능한 플래그에 대한 자세한 내용 은 응용 프로그램을 관리자 권한으로 실행 또는 호환성 모드로 블로그 게시물을 참조하십시오 .


1
흠, 이것은 단지 (!) 작동 할 것입니다 ... 세 번째 줄 "reg.exe ..."... 그래서 내가 어떤 디렉토리에있는 모든 exe에 대해 설정하면 해당 실행 파일에도 "연결되어 있습니다" 그것이 재건이라면?
Rook

2
"모든 사용자에 대한 설정 변경"버튼을 누르지 않는 한, 마우스 오른쪽 버튼 클릭> 속성> 호환성의 일반적인 동작은 HKCU에서 키를 설정하는 것입니다. 그런 다음 모든 사용자에 대해 HKLM에서 설정되며 대화 상자를 통해 변경할 수 없습니다.
Mike Brown


11

Robert의 대답은 현장에있었습니다. 조금 확장하고 모드 설정에 관한 OP의 질문에 대답하려면 ...

처리 할 .exe 파일로 가득 찬 폴더가 있으면 다음과 같이하십시오.

for %x in ("*.exe") do reg.exe Add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx" /d "WINXPSP3"

이 예에서는 HKLM 대신 HKCU를 사용합니다. 당신이 정말로 원하는 것을 선택하십시오.

각 설정에 대한 확인 프롬프트와 함께 설정을 제거하려면

for %x in ("*.exe") do reg.exe Delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx"

/f확인 메시지를 표시하지 않으려면 끝에 추가하십시오 .

(이 답변에 투표하면 Robert도 투표하십시오!)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.