Стесняюсь сказать это, но вы можете использовать элемент управления ActiveX Windows Script Control и встроить его в свое приложение VB6, а затем запустить код JavaScript, возможно, с некоторыми незначительными изменениями, но НЕ ДЕЛАЙТЕ ЭТОГО.Вы можете подумать, что это эффективно и экономит время для вас, но реальность такова, что вы потратите все виды дополнительного времени, занимаясь своей «работой вокруг».Кроме того, портирование вашего кода на VB6 сделает его работу намного быстрее.Я бы использовал метод сценариев, только если вам нужна какая-то расширяемость.
Добавьте ссылку на среду выполнения сценариев и элемент управления сценарием 1.0.
ПРИМЕЧАНИЕ: в этом примере переменнаяscode - это код javascript, переданный функции в виде строки.Поскольку код - это просто строка, которую вы можете передать в любые переменные, которые вы хотите, однако получить вещи из кода гораздо сложнее.Код может быть создан на лету или извлечен из текстового файла.
В этом примере код передается в виде строки, а затем выполняется поиск строки, чтобы увидеть, содержит ли она функцию с именем OnProgramLoad.Если это так, эта функция вызывается.
Public Sub OnProgramLoad(byval scode as string)
Dim sctest As ScriptControl
If Len(scode) < 1 Then Exit Sub
If InStr(1, scode, "OnProgramLoad", vbTextCompare) = 0 Then Exit Sub
Set sctest = New ScriptControl
With sctest
.Language = "JScript"
.AllowUI = True
.AddObject "Application", App
.AddObject "Clipboard", Clipboard
.AddObject "Printer", Printer
.AddObject "Screen", Screen
.AddCode scode
.Run "OnProgramLoad"
End With
Set sctest = Nothing
End Sub
Было бы лучше перенести свои подпрограммы на VB6, и если вам нужен доступ к библиотеке регулярных выражений в VB6, есть лучшие способы:
http://support.microsoft.com/kb/818802
Добавить ссылкув регулярные выражения Microsoft VBScript 5.5, затем перенесите свой код ...
Function TestRegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
' Create a regular expression object.
Set objRegExp = New RegExp
'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern
' Set Case Insensitivity.
objRegExp.IgnoreCase = True
'Set global applicability.
objRegExp.Global = True
'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.
For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
TestRegExp = RetStr
End Function