Чтобы получить доступ к блокноту, калькулятору через asp.net

Я пытаюсь открыть Блокнот, Калькулятор при нажатии кнопки в asp.net с кодом C #. пробовал с кодом

 System.Diagnostics.Process.Start("c:\\windows\\system32\\notepad.exe");

это отлично работает в локальной системе, но не работает на сервере. Я даже пробовал с javascript

function executeCommands(inputparms)
{
alert('ff');
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun = "C:\\Winnt\\Notepad.exe";
if (inputparms != "")
{
    var commandParms = document.form1.filename.value;
}

oShell.ShellExecute(commandtoRun, commandParms, "", "open", "1");
}

даже это не получается. Не могли бы вы предложить мне, как открыть приложение «Блокнот» на стороне клиента, не беспокоя блокнот сервера.


person Fairy_G    schedule 19.04.2011    source источник


Ответы (6)


Этого нельзя делать. Представьте, в каком беспорядке с безопасностью мы оказались бы, если бы веб-страница могла запускать произвольные программы на клиентской машине. Ой, подождите... ;-)

person Andrew Cooper    schedule 19.04.2011
comment
Можете ли вы дать более подробную информацию об этом плз. - person Fairy_G; 19.04.2011
comment
м не владею произвольными программами, так как с ним обрабатывать. - person Fairy_G; 19.04.2011
comment
@Fairy_G: «Произвольно» означает все, что вы можете придумать. Если бы веб-страница могла запускать любую программу, которую разработчик веб-страницы хотел запустить на клиентской машине, это было бы очень плохо для безопасности. - person Andrew Cooper; 19.04.2011

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

person Community    schedule 19.04.2011

Ты не сможешь это сделать. ASP.NET работает на сервере, и вы не можете запускать программы на клиентском компьютере. Показанный вами объект ActiveX должен работать, но только в IE и только после того, как пользователь явно разрешит его выполнение. Также расположение notepad.exe может отличаться в зависимости от клиента (может быть c:\windows, c:\winnt, ... и некоторые клиенты, работающие, например, в Linux или MacOS, не имеют такого исполняемого файла)

person Darin Dimitrov    schedule 19.04.2011
comment
мы можем открыть блокнот сервера или еще возможно через flash? Мне действительно нужно какое-то решение, чтобы открыть блокнот в событии щелчка изображения. это нормально, будь то блокнот его сервера или что-то в этом роде. пожалуйста. - person Fairy_G; 19.04.2011
comment
@Fairy_G, да, вы можете открыть серверный блокнот, используя Process.Start, но поскольку ASP.NET работает под учетной записью, у которой даже нет связанного графического интерфейса, не ожидайте увидеть его где-либо. Он может появиться в списке запущенных процессов на сервере, но это все. Что касается Flash, вы не можете запускать исполняемые файлы на клиенте. - person Darin Dimitrov; 19.04.2011
comment
Большое спасибо. но есть ли другой способ выполнить эту задачу. - person Fairy_G; 19.04.2011
comment
@Fairy_G, ActiveX, вероятно, является одним из способов, но, как я сказал в своем ответе, он работает только в IE, и пользователи должны его авторизовать. Вы понимаете, что запуск исполняемых файлов на клиентском компьютере с веб-сайта представляет собой серьезную проблему безопасности и не разрешен. - person Darin Dimitrov; 19.04.2011

То, чего вы пытаетесь достичь, невозможно из-за характера приложения в случае ASP.Net. Приложение будет выполняться на сервере и будет отправлять клиенту HTML только на стороне клиента. Даже если ваш код синтаксически правильный, он откроет утилиты на самом сервере.

person Subhash Dike    schedule 19.04.2011

Это может быть возможно с помощью приведенного ниже кода при нажатии кнопки сервера или ссылки. System.Diagnostics.Process.Start("notepad.exe");

person Rajneesh    schedule 19.04.2012
comment
Это запустит Блокнот на сервере, а не на клиентской машине, что, я подозреваю, именно то, что на самом деле хочет спрашивающий. Как указывалось во всех других ответах, запуск подобных программ из браузера невозможен (если вы не нашли серьезную дыру в безопасности в браузере). - person Spudley; 19.04.2012

System.Diagnostics.Process.Start("C:\Windows\System32\calc.exe")

Работает нормально, хотя вам, возможно, придется изменить настройки в вашем браузере. Убедитесь, что calc.exe находится в каталоге.

person jim denny    schedule 25.06.2012