А нельзя ли сделать что-нибудь наподобие динамической библиотеки различных функци vbs?
Код:
var vbCode = 'Function MyFunc(a,b,c,d,e)\r';
vbCode += 'Set objCom = GetObject(a)\r';
vbCode += 'MyFunc = objCom.mkdir(b)\r';
vbCode += 'End Function\r';
var Return = mdm.System.VBScript.execute(vbCode, "MyFunc", "script:http://mdm-zinc.narod.ru/Com/fcom.wsc", "C:\\NewFolder", "", "");
mdm.Dialogs.prompt(Return);
На указанном url лежит файл fcom.wsc (windows scripting component):
оригинальный xml здесь
http://flasher.ru/forum/newreply.php...reply&p=677298
Код HTML:
<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
description="fcom"
progid="fcom.WSC"
version="1.00"
classid="{fd17cd28-824d-4ddb-9980-5825cae259be}"
>
</registration>
<public>
<method name="mkdir">
<PARAMETER name="path"/>
</method>
</public>
<script language="VBScript">
<![CDATA[
function mkdir(path)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateFolder(path)
mkdir = f.path
end function
]]>
</script>
</component>
.swc-файл может располагаться и локально, конечно.
Происходит динамическая подгрузка этого компонента и вызывается его метод mkdir(path), который создает папку 'path'. Проверку на "already exists" в этом примере я не делал, поэтому имя папки (в примере - NewFolder) должно быть уникальным, иначе - ошибка.
Т.е. происходит что-то наподобие вызова библиотечной функции.
Еще один занятный пример.
Пример 7
Код:
var vbCode = 'Function MyFunc(a,b,c,d,e)\r';
vbCode += 'Set objCom = GetObject(a)\r';
vbCode += 'MyFunc = objCom.typechar(b,CDbl(c),d)\r';
vbCode += 'End Function\r';
var Return = mdm.System.VBScript.execute(vbCode, "MyFunc", "script:http://mdm-zinc.narod.ru/Com/fcom.wsc", "Hello!~It's me.", "0,3", "winword");
mdm.Dialogs.prompt(Return);
Скрипт запускает word, и с интервалом 0.3 с.(из-за особенностей vbs десятичный
разделитель должен быть запятая
",") печатает в нем строки "Hello! It's me.", если использовать аргумент "notepad" - то запустится блокнот, если строку "12*3~" и аргумент "calc" то .. смотрите сами.