2010-08-06 3 views
0

py-appscript를 사용하여 appscript를 실행하는 py2app 애플리케이션이 있습니다.py-appscript가 새로운 Finder 인스턴스를 시작합니다

app('Finder').update(<file alias of a certain file>)

업데이트 파인더에서 파일의 미리보기 이것이 일반적으로 수행입니다 : AppleScript로 코드는이 한 줄입니다. Leopard를 제외한 대부분의 경우 작동합니다. Leopard에서는 스크립트가 실행될 때마다 파일을 업데이트하는 대신 Finder의 새 인스턴스를 시작합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 응용 프로그램은 동일한 컴퓨터 (Leopard)에 구축되었습니다.

답변

1

py-appscript가 Python과 AppleScript를 통해 스크립팅하는 응용 프로그램 사이의 계층으로 보는 것으로,이 문을 순수 AppleScript로 이식하고 거기에서 작동하는지 확인하는 것이 좋습니다. Applescript (그리고 당신의 진술만으로도)가 잘못 될 수있는 많은 것들이 있습니다. 그리고 오류가 발생했을 때 py-appscript로 어떤 것이 기대되는지는 분명하지 않습니다.

+0

대답은 아니지만 귀하의 제안은 올바른 방향으로 나를 지적했습니다. AppleScript로 실행 해 보았는데 문제가 재현되었습니다! 로그를 확인하고 여러 명의 사용자가 로그인했음을 알았습니다. Applescript는 더 낮은 프로세스 ID 값으로 Finder 인스턴스에 액세스하고있었습니다 (따라서 "Permission denied"오류가 발생합니다). 프로세스 ID를 통해 사용자의 Finder 인스턴스를 지정하도록 스크립트를 수정 했으므로 이제는 정상적으로 작동합니다. 이상한 일은 Leopard에서만 발생합니다. – maranas

+0

나는 이것이 적절한 대답이 아니라는 것을 안다. 나는 정말로 그걸 가지고 있지 않았지만, 나의 제안이 당신을 올바른 길로 인도 할 것이라고 기대했다. 많은 것들이 AppleScript로 Leopard에서 바뀌었고 Snow Leopard에서 다시 변경된 것들이 있지만 그 변경 사항이 정확히 무엇인지 찾을 수 없었습니다. 그러한 것은 Applescripter의 삶입니다. 건배 –

관련 문제