我有一个非常简单的 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}”
我有点迷失了。我会很感激用作指南的小例子
提前致谢