Подключение teamviewer в коде через ссылку браузера

У меня есть проблема, которая сводит меня с ума. Мне удалось успешно подключить сеанс teamviewer из uri браузера к моему требуемому удаленному ресурсу. Я достигаю этого, используя следующую команду uri в адресной строке браузера (на самом деле это нажатие кнопки в html):

  • teamviewer8://пульт дистанционного управления?connectcc=123456789

Хотя это прекрасно соединяется, как требуется, это представляет проблему, которую мне нужно решить.

Проблема

Если соединение еще не открыто, сеанс teamviewer инициируется, и окно появляется на моем втором мониторе по мере необходимости. Все хорошо. Однако, если сеанс уже запущен, и я инициирую последующий запрос к тому же uri, создается новый сеанс, и у меня остается несколько дублирующихся окон сеанса. Это требует больших ресурсов в долгосрочной перспективе и нежелательно на практике.

Мое идеальное решение

В идеале я хотел бы, чтобы процесс функционировал так, чтобы вызывался новый сеанс, если он еще не имеет заданного идентификатора. Если запущен более ранний сеанс с этим идентификатором, я хотел бы найти способ привлечь к этому внимание, а не заставлять teamviewer создавать новый сеанс.

Что я уже знаю

Я знаю, что это возможно, поскольку консоль teamviewer делает именно это, если вы пытаетесь инициировать второй сеанс с уже запущенным идентификатором. Использование консоли teamviewer не вариант, так как я разработал веб-решение для рабочего стола, которое требует, чтобы сеансы запускались с помощью нажатия кнопки внутри пользовательского интерфейса (идентификаторы хранятся в моей собственной базе данных).

Приложение, которое я создал, может буквально открывать сотни дубликатов окон, поскольку я просматриваю множество процессов в небольшом диапазоне идентификаторов в течение концентрированного периода времени, поэтому срочно требуется решение.

Итог

Можно ли добавить параметр в uri, чтобы указать teamviewer не создавать новый сеанс. Есть ли простой переключатель, который я упустил, который решит проблему??

Спасибо за чтение...

[edit] - хотя вряд ли это имеет какое-либо значение, я использую asp.net mvc для приложения. Я добавляю эту информацию, так как вполне может быть, что конвейер http добавляет/кеширует что-то, что teamviewer интерпретирует как уникальный идентификатор.

[Обновление]

После тщательного рассмотрения и безрезультатных поисков я решил создать собственное прокси-приложение и зарегистрировать его с протоколом по своему выбору. Это прокси-приложение вызывается с теми же параметрами, что и протокол teamviewer, то есть arb://remotecontrol?connectcc=123456789. Мое маленькое приложение имеет внутренний словарь и выполняет поиск по заголовкам окон в словаре. если он находит совпадение, он переводит окно в фокус, если нет, он выполняет Process.Start() с использованием протокола teamviewer, а затем добавляет данные в словарь. есть и другие проверки, но пока это работает нормально.

Я использовал эти ссылки для первоначального вдохновения:

Надеюсь, это поможет всем, кому нужно обойти этот сценарий в любой ситуации.


person jim tollan    schedule 06.03.2014    source источник
comment
Я никогда не разрабатывал ничего с использованием TeamViewer, но проверяли ли вы документацию по API? Там есть раздел, посвященный управлению сессиями.   -  person John H    schedule 06.03.2014
comment
привет Джон, да, я просмотрел рестапи в деталях. к сожалению, он предназначен для управления пользователями, группами, собраниями и т. д. и не является программным API для вызова функций как таковых. моя дилемма сосредоточена вокруг вызова телевизионного сеанса через ссылку браузера. все это работает нормально, как я уже упоминал, но создает несколько экземпляров с одним и тем же идентификатором, а не повторно использует и фокусирует внимание. сказать, что это разочаровывает, — это ничего не сказать, поскольку найти требуемую командную строку было не чем иным, как впечатляющей удачей, поскольку в Интернете не так много информации, связанной с этим.   -  person jim tollan    schedule 06.03.2014
comment
чтобы добавить к предыдущему комментарию. хотя я мог бы создать небольшое настольное приложение-сентинал, которое могло бы отслеживать создание окон TeamViewer, а затем выделять или уничтожать дубликаты, это не мой выбор, даже если это послужит цели очистки дубликатов !!   -  person jim tollan    schedule 06.03.2014
comment
+1 кстати и ты прав; информации об этом действительно очень мало. Я попытался найти в Google teamviewer "connectcc" и смог найти анализ строк исполняемого файла TeamViewer. Это полный снимок в темноте, но там есть несколько строк, которые вы могли бы использовать для прямого указания фактического сеанса - возможно, это предотвратит дублирование. Это: connectsid, session и sessionID. Как я уже сказал, это дикая догадка, но на самом деле не так много, чтобы продолжать.   -  person John H    schedule 06.03.2014
comment
Я должен упомянуть, что я не читал весь анализ этого файла, поэтому вполне возможно, что есть другие (потенциальные) параметры, которые вы можете почерпнуть из него.   -  person John H    schedule 06.03.2014
comment
Джон, я видел эту ссылку ранее при обзоре, хотя признаю, что не слишком углублялся в нее. я пробовал эти параметры, однако без успеха. спасибо за копание, хотя, я уверен, что это где-то есть. (я также отправил электронное письмо в службу поддержки teamviewer в Германии, но они, как известно, отвечают медленно)   -  person jim tollan    schedule 06.03.2014
comment
Без проблем. :) Надеюсь, вы найдете решение. (Я тоже хотел бы знать сейчас.)   -  person John H    schedule 06.03.2014
comment
john, возможно, мне придется пойти по специальному пути протокола и установить небольшое прокси-приложение, содержащее словарь. затем это приложение либо вызовет команду teamviewer с параметрами, либо вызовет предыдущее окно. действительно нужно сделать это быстро, так что не самый элегантный, но, возможно, самый прагматичный. см. msdn.microsoft.com/en-us/library /aa767914%28VS.85%29.aspx подробнее   -  person jim tollan    schedule 06.03.2014
comment
Спасибо за обновление. Рад, что у тебя что-то работает.   -  person John H    schedule 06.03.2014