2017-03-15 2 views
0

최근에 pywin이 설치되었습니다 (레지스트리 항목을 변경해야했지만 다시 변경했습니다). 또한 Python 2.7을 제거한 후 더 이상 파일을 내 Python 스크립트에 끌어다 놓을 수 없습니다. 나는 또한 파일 연결을 잃어 버렸다. 나는 그때부터 CCleaner를 설치 제거한 후 재설치했다. C : \ Python3 \ Python.exe, C : \ Python \ Pythonw.exe, C : \ Windows \ py.exe, C에 기본 프로그램을 설정하려고 시도했다. : \ Windows \ pyw.exe, 내 컴퓨터를 다시 시작했지만 파일을 내 스크립트로 드래그해도 여전히 작동하지 않습니다. StackOverflow에 관한 많은 질문을 겪었습니다. 그 중 대부분은 거의 10 년 전부터 있었으며 이제는 관련성이없는 것처럼 보입니다. 누구든지 아이디어가 있습니까? 감사. ,Python 드래그 앤 드롭 깨짐

는 또한 this을 시도하지만

먼저 (필요한 된 및 아니었다 확실하지)

+1

가장 간단한 방법은 설치 프로그램이 파일 연결을 다시 설정할 수 있도록 Python 3 설치를 복구하는 것입니다. – eryksun

+1

실행 파일과 수동으로 연결하려는 시도는 명령 줄 인수를 받아야하고 드롭 처리기를 구현해야하는 스크립트에 대해서는 수행하지 않아야합니다. 파일 유형은 "열기"명령 템플리트 (예 :'py.exe "% 1"% *')와 "DropHandler"의 CLSID가있는 프로그램 식별자 (ProgId)와 연관되어야합니다 (예 : 구현 된 핸들러 pyshellext.amd64.dll에 의해). Python의 설치 프로그램은 .py 스크립트를 처리하기위한'Python.File' ProgId를 만듭니다. – eryksun

+0

수리를 시도했지만 작동하지 않았습니다. 나는 레지스트리에서 열린 키로 어지럽 혀지기를 시도 할 것이다. 감사. 편집 : 작동하지 않았다. –

답변

0

내가 레지스트리에 주위를 찌르고 다음과 같은 일을하여 고정 도움이되지 않았다 HKEY_CLASSES_ROOT.py에 가서 값이

"C:\Windows\py.exe" "%1" %* 
으로 "명령"이라는 키를 다음

을 Python.File HKEY_CLASSES_ROOT \ Python.File \ 셸 \ 열기에 가서 만들 설정되어 있는지 확인합니다

을 값으로 사용합니다. 나는 \ py.exe \ 열려 \ 명령

그런 다음 CLASSES_ROOT \ Python.File \ ShellEx를 이동하고 값으로

{86C86720-42A0-1069-A2E8-08002B30309D} 

에 "DropHandler"라는 키를 만들 CLASSES_ROOT \ 응용 프로그램에 동일했다. 그 값은 당신이 끌고있는 파일의 파일 이름을 가져 와서 command에서 실행하는 DLL의 CLSID입니다.

+1

'Python.File'은 설치 프로그램에서 복구해야하지만, 현재 사용자 소프트웨어 클래스에서 충돌하는 설정이있을 수 있습니다. 'HKCR'은 진짜 레지스트리 하이브가 아닙니다. 그것은 단지'HKCU \ Software \ Classes'와'HKLM \ Software \ Classes'를 합친 뷰입니다. * 읽기 *를 의미하며 현재 사용자의 레지스트리 하이브에 우선 순위를 부여합니다. 레지스트리를 편집 할 때는 항상 실제 키를 수정해야합니다. 그렇지 않으면 열어 둔 키가 레지스트리에 이미 존재하는 것에 따라'HKCU' 또는'HKLM'에 있는지 알 수 없습니다. – eryksun

+1

또한 3.5 이상을 실행중인 경우 잘못된 놓기 처리기를 설정했습니다. '{86C86720-42A0-1069-A2E8-08002B30309D}'는 우리가 사용하던 표준 EXE 드롭 핸들러입니다. 그것은 유니 코드 파일 경로에 문제가있어서 Steve Dower는 ID '{BEA218D2-6950-497B-9434-61683EC065FE}'를 가진 새로운 드롭 처리기를 구현하는 Windows Python 쉘 확장 라이브러리 pyshellext.amd64.dll을 만들었습니다. – eryksun