Re: WSH: обмен данными и объектами между скриптами — 2
Так как объект с CLSID {C08AFD90-F2A1-11D1-8455-00A0C91F3880} — это обычный объект Shell Window, то в качестве подобного контейнера может быть использовано любое существующее окно Проводника, например Рабочий стол. Я не владею WSH, поэтому пример на AHK (который, думаю, легко переписать на vbs).
Первый скрипт:#Requires AutoHotkey v2 Persistent VT_UI4 := 0x13, SWC_DESKTOP := 0x8 shellWindows := ComObject('Shell.Application').Windows desktopShellWindow := shellWindows.Item(ComValue(VT_UI4, SWC_DESKTOP)) desktopShellWindow.PutProperty('myObj', {key: 'Hello!'})
Второй скрипт:
#Requires AutoHotkey v2 VT_UI4 := 0x13, SWC_DESKTOP := 0x8 shellWindows := ComObject('Shell.Application').Windows desktopShellWindow := shellWindows.Item(ComValue(VT_UI4, SWC_DESKTOP)) MsgBox desktopShellWindow.GetProperty('myObj').key
Одна проблема: если Проводник перезапустить, данные будут потеряны.
Так это и было понятно с первого раза. Передача инфы только через память локального компа на котором крутятся скрипты.
Поэтому с сетью "такое" не прокатит. Хотя как утверждает Микрософт "сериализация" их такое может сделать