Мне кажется что я кое что придумал как, связывать между собой машины в иннете с работающими там vbs-ками которые будут передавать друг другу данные.
Есть такой постоянный работающий сервис как "Алиса".
Вот её я и предлагаю использовать как перевалочную станцию для данных.
-->
сама алиса hxxps://dialogs.yandex.ru/
и что нам предлагают в яндексе, как программерам
hxxps://yandex.ru/dev/dialogs/alice/doc … rogramming
...
конечно нужно будут вносить свои данные при регистрации. Но зато "передавай/получай" 24/7 - нет проблем.
Но есть и другие бесплатные сервисы, работающие 24/7 в иннете, и не только алиса.
teadrinker
Я переписал на VBS вашу версию с "рабочим столом" .
Она (ваша версия) с "рабочим столом" пашет так же как и с проводником.
файл 1.vbs
Option Explicit
Class GlobalObject
Private ShellWindow, ShellWindows
Sub OpenContainer(name)
Dim ShellWindows
Set ShellWindows = CreateObject("Shell.Application").Windows
For Each ShellWindow in ShellWindows
if Instr(1,ShellWindow.StatusText,name) = 1 Then Exit Sub
Next
' Set ShellWindow = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
' - в версии с рабочим столом не создавать новый объект (рабочий стол)
Set ShellWindow = GetObject("{00021400-0000-0000-C000-000000000046}")
ShellWindow.StatusText = name
End Sub
Property Let Value(name, newValue)
ShellWindow.PutProperty name, newValue
End Property
Public Default Property Get Value(name)
On Error Resume Next
if IsObject(ShellWindow.GetProperty(name)) Then
Set Value = ShellWindow.GetProperty(name)
Else
Value = ShellWindow.GetProperty(name)
End if
End Property
End Class
Dim GlobalObj, fso
Set GlobalObj = New GlobalObject
set fso = CreateObject("Scripting.FileSystemObject")
GlobalObj.OpenContainer "storage"
GlobalObj("test") = InputBox("Введите значение для глобальной переменной ""test"".")
GlobalObj("fso") = fso
MsgBox "Значения установлены. Теперь, не закрывая это сообщение, запустите 2.vbs"
...
файл 2.vbs
Option Explicit
Class GlobalObject
Private ShellWindow, ShellWindows
Sub OpenContainer(name)
Dim ShellWindows
Set ShellWindows = CreateObject("Shell.Application").Windows
For Each ShellWindow in ShellWindows
if Instr(1,ShellWindow.StatusText,name) = 1 Then Exit Sub
Next
' Set ShellWindow = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
' - в версии с рабочим столом не создавать новый объект (рабочий стол)
Set ShellWindow = GetObject("{00021400-0000-0000-C000-000000000046}")
ShellWindow.StatusText = name
End Sub
Property Let Value(name, newValue)
ShellWindow.PutProperty name, newValue
End Property
Public Default Property Get Value(name)
On Error Resume Next
if IsObject(ShellWindow.GetProperty(name)) Then
Set Value = ShellWindow.GetProperty(name)
Else
Value = ShellWindow.GetProperty(name)
End if
End Property
End Class
dim GlobalObj
Set GlobalObj = New GlobalObject
GlobalObj.OpenContainer "storage"
MsgBox "Значение переменной ""test"": " & GlobalObj("test") ,vbInformation
MsgBox "Тип переменной ""fso"": " & TypeName(GlobalObj("fso")),vbInformation
ремарка.
teadrinker
Спасибо огромное ВАМ, что помогли нам тут с этим вопросом и нашли простой способ работающего сервиса "рабочий стол",
который является ключевым в винде и мало вероятно что он сбойнёт и вся инфа потеряется.