Hallo IB-Software,
deine Frage ist leicht beantwortet.
So wie bei einer Prozedure mit Rückgabewert üblich.
Bei der Procedure AppleScript wurde hier der Rückgabewert als PureBasic-String-Typ gewählt.
Also z.B. so:
Code:
Procedure.s AppleScript(Script.s)
Protected retVal.s, strVal, numItems, i
Protected aScript = CocoaMessage(0, CocoaMessage(0, CocoaMessage(0, 0, "NSAppleScript alloc"), "initWithSource:$", @Script), "autorelease")
Protected eventDesc = CocoaMessage(0, aScript, "executeAndReturnError:", #nil)
If eventDesc
numItems = CocoaMessage(0, eventDesc, "numberOfItems")
If numItems
For i = 1 To numItems
strVal = CocoaMessage(0, CocoaMessage(0, eventDesc, "descriptorAtIndex:", i), "stringValue")
If strVal
retVal + PeekS(CocoaMessage(0, strVal, "UTF8String"), -1, #PB_UTF8)
If i <> numItems : retVal + #LF$ : EndIf
EndIf
Next
Else
strVal = CocoaMessage(0, eventDesc, "stringValue")
If strVal : retVal = PeekS(CocoaMessage(0, strVal, "UTF8String"), -1, #PB_UTF8) : EndIf
EndIf
EndIf
ProcedureReturn retVal
EndProcedure
ok.s = AppleScript(~"set lalala to computer name of (system info)")
Debug ok