Modul ActiveScript - VB-Script mit Runtime Variablen
Verfasst: 18.09.2018 19:38
Mal wieder etwas nur für Windows.
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
[/size]
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")