0
따라서 CTypes Im을 사용하면 아래 코드를 변환 할 수 있습니다. 우리는 그것이 usngiend 문자 여기를 참조 Ctypes 문자를 예상하지만 unsigned int (OSX)로 정의 된 OSType을 설정하는 방법
FourCharCode = ctypes.c_uint32
OSType = FourCharCode
QTPropertyClass = OSType
으로 그것은
OSType
를 사용 OSTYPE이 dfined된다. 그러나이 c_uint32 유형을 전자 않을 것
'MACS'
에 변수를 설정, 그래서하는 ctypes에
const OSType kFinderSig = 'MACS';
로 정의 아래 우리는 코드에서 볼 수 있지만, 어떤 문자 것인가?
알려 주시기 바랍니다.
감사
https://stackoverflow.com/a/8895297/1828637
OSStatus SendFinderSyncEvent(const FSRef* inObjectRef)
{
AppleEvent theEvent = { typeNull, NULL };
AppleEvent replyEvent = { typeNull, NULL };
AliasHandle itemAlias = NULL;
const OSType kFinderSig = 'MACS';
OSStatus err = FSNewAliasMinimal(inObjectRef, &itemAlias);
if (err == noErr)
{
err = AEBuildAppleEvent(kAEFinderSuite, kAESync, typeApplSignature,
&kFinderSig, sizeof(OSType), kAutoGenerateReturnID,
kAnyTransactionID, &theEvent, NULL, "'----':alis(@@)", itemAlias);
if (err == noErr)
{
err = AESendMessage(&theEvent, &replyEvent, kAENoReply,
kAEDefaultTimeout);
AEDisposeDesc(&replyEvent);
AEDisposeDesc(&theEvent);
}
DisposeHandle((Handle)itemAlias);
}
return err;
}
수천 번 감사드립니다! 이것은 나를 미치게했다! 하나의 솔루션에 대해 특별히 감사드립니다! 나는 다른 일을하는 것을 보는 것을 배우는 것을 좋아한다. 그것은 톤을 돕는다! – Noitidart
파이썬 3에서는'kFinderSig = int.from_bytes (b'MACS ','big ')'도 사용할 수 있습니다. ctypes 데이터 타입은 빅 엔디안 요구 사항 때문에 여기서는 편리하지 않습니다 :'kFinderSig = c_uint32 .__ ctype_be__. from_buffer_copy (b'MACS ')'. – eryksun
감사합니다 @eryksun 난 몰랐어! :) – Noitidart