Снова к вопросу о работе торгового оборудования в терминальной сессии

6 Comments

  1. Re:аниматор
    Видел много вариантов реализации функции для получения имени компьютера для работы с торговым оборудованием в терминальной сессии.

    Не знаю про какие «много вариантов», но лично я уже 5 лет назад такое сделал 🙂 привязку настроек ТО в терминальной сессии к локальному компьютеру, т.к. 3 терминальных сервера с 1 локального компа …

    Reply
  2. Berrimor

    видел на этом форуме такие варианты:

    1. мИмяКомпьютера = ВРег(ИмяКомпьютера()+»\»+ИмяПользователя())

    2. WshShell = Новый COMОбъект(«WScript.Network»); мИмяКомпьютера = ВРег(ИмяКомпьютера()+»\»+WshShell.UserName)

    считаю их менее удачными

    Reply
  3. CheBurator

    осталось уточнить — возвращается имя компа, ПРИКОННЕКТИВШЕГОСЯ к сессии (например оборванной день назад)..?

    Reply
  4. Berrimor

    (3) похоже именно так 🙂 не проверял, но подобные ситуации (незакрытая терминальная сессия) решаются другими способами, обычно на уровне администрирования терминального сервера, например установкой предельного времени жизни неактивной сессии

    Reply
  5. Berrimor

    Да, еще один момент: обнаружил что на некоторых компах локально выдает не пустое значение WshSysEnv.Item(«ClientName») а «CONSOLE». Причинно следственной связи между настройками ОС, ее версией и прочим не уловил :), одним словом для корректной работы в тексте приведенной ф-ции необходимо изменить:

    ПустаяСтрока(ИмяКомпьютераТО) на ПустаяСтрока(ИмяКомпьютераТО) ИЛИ ВРег(ИмяКомпьютераТО) = «CONSOLE»

    Reply
  6. Jogeedae

    у меня взлетел такой вариант:

    ///////Имя клиента и компьютера запустившего сеанс

    всШелл = Новый COMОбъект(«WScript.Shell»);

    ИмяСеанса = всШелл.ExpandEnvironmentStrings(«%SESSIONNAME%»);

    ИмяКлиента = всШелл.ExpandEnvironmentStrings(«%CLIENTNAME%»);

    Сообщить(?(нрег(ИмяСеанса) = «console», ИмяКомпьютера(), ИмяКлиента));

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *