Da das ScriptControl von ts.soft und mir nicht unter X64 läuft, habe ich mich mal mit ActiveScript beschäftigt.
Der Code liegt im englischen Forum.
Link: Modul ActiveScript
Vielleicht mal ausprobieren
Beispiel
Code: Alles auswählen
;-TOP
; Comment : Modul ActiveScript Example 1
; Version : v2.01
; Link to ActiveScript : https://www.purebasic.fr/english/viewtopic.php?f=12&t=71399
; Link to SmartTags : https://www.purebasic.fr/english/viewtopic.php?f=12&t=71399#p527089
; Link to VariantHelper : https://www.purebasic.fr/english/viewtopic.php?f=12&t=71399#p527090
; ***************************************************************************************
XIncludeFile "Modul_ActiveScript.pb"
XIncludeFile "Modul_SmartTags.pb"
XIncludeFile "VariantHelper.pb"
UseModule ActiveScript
UseModule ActiveSmartTags
; -------------------------------------------------------------------------------------
Global vbs.s, name.s, *psa_files, *psa_text
Global Dim files.s(3)
Global NewList Text.s()
; Variable als Rumtime definieren zum Zugriff aus VB-Script
Runtime name
; Daten anlegen
name = "test.xls"
files(0) = "Image-1.jpg"
files(1) = "Image-2.jpg"
files(2) = "Image-3.jpg"
files(3) = "Image-4.jpg"
AddElement(Text()) : Text() = "Hello World"
AddElement(Text()) : Text() = "I like Purebasic"
; Das Array in ein SafeArray wandeln
*psa_files = ArrayToSafeArray(files())
; Das SafeArray zum SmartTag zuweisen
SetVariantSafeArray(SmartTags("files"), *psa_files)
; Die Liste in ein SafeArray wandeln
*psa_text = ListToSafeArray(Text())
; Das SafeArray zum SmartTag zuweisen
SetVariantSafeArray(SmartTags("texte"), *psa_text)
; VB-Script schreiben
vbs + "Dim name, file, files, texte, result" + #LF$
vbs + "" + #LF$
vbs + "name = Runtime.String('name')" + #LF$
vbs + "result = 'Name: ' & name & vbNewLine" + #LF$
vbs + "" + #LF$
vbs + "files = SmartTags('files')" + #LF$
vbs + "texte = SmartTags('texte')" + #LF$
vbs + "" + #LF$
vbs + "result = result & vbNewline & 'Array:' & vbNewline" + #LF$
vbs + "If IsArray(files) Then" + #LF$
vbs + " For Each file In Files" + #LF$
vbs + " result = result & file & vbNewLine" + #LF$
vbs + " Next" + #LF$
vbs + "Else" + #LF$
vbs + " result = 'No Array'" + #LF$
vbs + "End If" + #LF$
vbs + "" + #LF$
vbs + "result = result & vbNewline & 'List:' & vbNewline" + #LF$
vbs + "If IsArray(texte) Then" + #LF$
vbs + " result = result & texte(0) & vbNewLine" + #LF$
vbs + " result = result & texte(1) & vbNewLine" + #LF$
vbs + "Else" + #LF$
vbs + " result = 'No Array'" + #LF$
vbs + "End If" + #LF$
vbs + "" + #LF$
vbs + "MsgBox result" + #LF$
vbs + "" + #LF$
vbs = ReplaceString(vbs, "'", #DQUOTE$)
; VB-Script ausführen
Debug "**********************************"
*Control = NewActiveScript()
If *Control
; AddOn SmartTags hinzufügen
AddNamedObject(*Control, "SmartTags", NewSmartTags())
Debug "**********************************"
Debug vbs
Debug "**********************************"
ParseScriptText(*Control, vbs)
Debug "**********************************"
FreeActiveScript(*Control)
EndIf
; SafeArray Speicher freigeben
ClearSmartTags("files")
ClearSmartTags("texte")