Member 13801408 Ответов: 1

Запуск ssms.exe использование angular 5/6 (href HTML)


Я хочу, чтобы запустить ssms.exe от углового Солар, нажмите кнопку.
Если я нажму на сервер он должен запустить ssms с подробностями

Я пробовал запускать с winform, это сработало для меня.

Ниже приведен код для Winform.

Что я уже пробовал:

Детали ярлыка ссылки Winform:
lnkSqlServer.Links.Add(0, lnkSqlServer.Text.Length, "-S " + Server + Instance + " -d " + Database + "-E");


private void lnkSqlServer_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            System.Diagnostics.Process.Start("ssms.exe", e.Link.LinkData.ToString());
        }



Angular 6 HTML cocde:

<li class="list-group-item">Server :
            <a href='"-S " + {{model.Server}} + {{model.Instance }} + " -d " + {{model.Database }} +"-E"' target="_ssms.exe">
              {{model.Server}} 
            </a>
          </li>

MadMyche

Вы запускаете это на клиентской машине?

Member 13801408

Нет, в местной машине.

Это внутреннее приложение

1 Ответов

Рейтинг:
0

Dave Kreskowiak

HTML и клиентский javascript не могут запускать исполняемый файл на клиентской машине по очевидным причинам безопасности.

Однако вы можете указать серверу, чтобы он запустил исполняемый файл на сервере. Ваш серверный код просто должен предоставить метод, который может вызвать клиентский код. Этот метод на стороне сервера запускает необходимый исполняемый файл с требуемыми параметрами.

Клиентский код вызовет этот метод, как и любой другой AJAX-вызов обратно на сервер. Вы даже можете передать параметры в метод на стороне сервера.

В интернете есть тонны примеров для AJAX-вызовов. Просто погуглите для этого.


Но подумайте вот о чем. Вы действительно хотите, чтобы сотни клиентов сообщали серверу о запуске исполняемого файла? Это немного утечка ресурсов на веб - сервере.

Кроме того, вы бы хотели, чтобы кто-то мог вызвать этот метод? Возможно, вы захотите подумать о безопасности вокруг этого.