0

我有一个非常简单的 AppleScript:

tell application "Opera"
   get URL of active tab of window 1
end tell

这是对 AppleEvents 的翻译:

osascript browser.scpt 
{core,getd target='psn '[Opera] {----={form=prop,want=prop,seld=URL ,from={form=prop,want=prop,seld=acTa,from={form=indx,want=cwin,seld=1,from=NULL-impl}}}} attr:{csig=65536 returnID=15130}

由于某些原因,我不能使用 AppleScript,所以我需要将这些事件转换为 C 代码。

到目前为止,在查看了一些示例并阅读了一些文档之后,我有了这个:

AppleEvent theEvent;
AEIdleUPP theIdleProc = NewAEIdleUPP((AEIdleProcPtr)&TheIdleFunction );
if( NULL != theIdleProc )
{
    char* arg = "Opera";
    AEAddressDesc addDesc;
    err = AECreateDesc( typeProcessSerialNumber, &arg, sizeof( arg ), &addDesc );
    printf("AECreateDesc error --> %d\n", err);
    if( noErr == err )
    {
        // my event creation
        // create event:
        err = AECreateAppleEvent( 'core', 'getd', &addDesc, kAutoGenerateReturnID, kAnyTransactionID, &theEvent );
        // create descriptors needed
        AEDesc indexDescriptor;
        long indexVerb = 'indx';
        err = AECreateDesc('enum',&indexVerb,4,&indexDescriptor);
        AEDesc nullDsc;
        err = AECreateDesc(typeNull, nil, 0, &nullDsc);
        //seld = 1
        long seldIndex = 1;
        AEDesc seldIndexDesc;
        err = AECreateDesc(typeSInt64 ,&seldIndex,4,&seldIndexDesc);
        err = CreateObjSpecifier('cwin',&nullDsc,'ID  ',&theSeldDesc,true,&theThirdObjSpec);
    }
}
    return 0;

但我有点卡在这里。例如,如何将“form=indx”连接到“want=cwin”我是否需要为表单部分创建 AEDesc,然后为需要的部分和出售的部分创建 AEDesc?

原始事件中最后一行的含义是什么?“属性:{csig=65536 returnID=15130}”

我有点迷失了。我会很感激用作指南的小例子

提前致谢

4

0 回答 0