Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Доступ к локальн. переменной Genesis32 v9.2 из VBS

 Ответить Ответить
Автор
Сообщение
Алексей_К Смотреть выпадающим
Новичок
Новичок


Присоединился: 04 Сентябрь 2013
Категория: Инженер ПНР
Online Status: Offline
Публикации: 7
Свойства публикации Свойства публикации   Ответить, цитируя автора - Алексей_К Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Доступ к локальн. переменной Genesis32 v9.2 из VBS
    Опубликовано: 04 Сентябрь 2013 14:42
Как получить доступ к локальной переменной из VBS? Нужно вывести текущего зарегистрированного пользователя на экранную форму GraphWorx32 через отображение локальной переменной ~~User~~. 

Следующий скрипт выводит имя пользователя в диалоговое окно MessageBox:
Set t = CreateObject ("ICONICS.LoginActiveX")
If t Is Nothing Then
MsgBox "An error has occurred while trying to launch the login dialog."
Else
t.LoginDlg()
t.GetLoggedInUsersNames str
MsgBox str
End If
А мне нужно вывести в локальную переменную ~~User~~! Как доработать скрипт?

Есть другой вариант на VBA(выводит имя пользователя в текстовое поле:
Dim Label As GwxText
DIM oSecServer As SECDual
    Set Label = ThisDisplay.GetVisibleObjectFromName("Operator")
    'Create security object
    Set oSecServer = New SECDual
    'Connext to a security server
    oSecServer.Node = Environ$("COMPUTERNAME")
    'CHECK IF CURRENT USER
    If Len(oSecServer.LoggedIn) > 0 Then
        'Someone is logged on
        Label.Text = oSecServer.LoggedIn
    Else
        'No one logged on
        Label.Text = "Nobody Logged In"
    End If

Хочется сделать нечто такое но на VBS  а не на VBA:
'объявить объект 
Dim ptUser As GwxPoint
'создать указатель на локальную переменную
Set ptUser= ThisDisplay.GetPointObjectFromName("~~User~~")
'вызвать диалог по авторизации пользователя
Set t = CreateObject ("ICONICS.LoginActiveX")
If t Is Nothing Then
MsgBox "An error has occurred while trying to launch the login dialog."
Else
t.LoginDlg()
'получить в str имя залогин-евшегося пользователя
t.GetLoggedInUsersNames str
' записать имя пользователя в локальную переменную
ptUser.Value = str
'освободить указатели
Set t = Nothing
Set ptUser = Nothing

EndIf

Наверх
Алексей_К Смотреть выпадающим
Новичок
Новичок


Присоединился: 04 Сентябрь 2013
Категория: Инженер ПНР
Online Status: Offline
Публикации: 7
Свойства публикации Свойства публикации   Ответить, цитируя автора - Алексей_К Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 05 Сентябрь 2013 11:03
Опытным путем в VBA сделал процедуру, которая записывает имя пользователя в локальную переменную. Теперь бы еще научиться делать тоже самое  в VBS

Sub LogInVBA()
Dim Label As GwxPoint
Dim oSecServer As SECDual

    Set Label = ThisDisplay.GetPointObjectFromName("\\Korolevaa\ICONICS.DataWorX32.8\Local.~~User~~")
    'Create security object
    Set oSecServer = New SECDual
    'Connext to a security server
    oSecServer.Node = Environ$("COMPUTERNAME")
        'CHECK IF CURRENT USER
    If Len(oSecServer.LoggedIn) > 0 Then
        'Someone is logged on
        Label.Value = oSecServer.LoggedIn
    Else
        'No one logged on
        Label.Value = "Не зарегистрирован"
    End If
End Sub
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz