Seite 1 von 1

Modul ActiveScript - VB-Script mit Runtime Variablen

Verfasst: 18.09.2018 19:38
von mk-soft
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 :wink:

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")
[/size]

Re: Modul ActiveScript - VB-Script mit Runtime Variablen

Verfasst: 23.09.2018 19:01
von mk-soft

Re: Modul ActiveScript - VB-Script mit Runtime Variablen

Verfasst: 26.05.2019 15:05
von mk-soft
Größeres Update :wink:
- Mehrere Instanzen für asynchone Verarbeitung öffnen (Threads)