Как я могу открыть файл .EXE с сайта ASP.NET? - PullRequest
1 голос
/ 09 февраля 2011

Можно ли открыть исполняемые файлы на клиентском компьютере с сайта ASP.NET, размещенного на IIS?

Я пытался использовать следующий код в ASP.NET:

.
Process notePad = new Process();

notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = @"E:\abc.txt";

notePad.StartInfo.CreateNoWindow = false;
notePad.StartInfo.UseShellExecute = false;
notePad.StartInfo.RedirectStandardOutput = false;

notePad.Start();

, а также в Javascript со следующим кодом:

function Launch() {
    var w = new ActiveXObject("WScript.Shell");
    w.run('notepad.exe');
    return true;
}

Но оба фрагмента откроют файл, только если сайт не размещен в IIS.

Любая помощь очень ценится. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 09 февраля 2011

Вы не сможете запустить исполняемый файл на клиенте (компьютере, на котором запущен браузер) практически при любых обстоятельствах ...

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

Если вам удалось разрешить Клиенту дать вам разрешения на запуск Блокнота (большое «если»), вы, вероятно, также захотите что-то показать, если машина не была Windows PC (например, в первом блокноте нет Блокнота). место)

1 голос
/ 09 февраля 2011

Вы можете попробовать использовать Javascript, но это работает только для пользователей IE:

<html>
<head runat="server">
    <title>Run Executable HTA</title>

    <script language="javascript" type="text/javascript">
    function RunEXE(prog)
    {
        var oShell = new ActiveXObject("WScript.Shell");
        oShell.Run('"'+prog+'"', 1);
    }
    </script>
</head>
<body>
    <input id="btnMyButton" onClick="RunEXE('notepad.exe')" type="button" value="Notepad" />
</body>
</html>

EDIT

Удалено жесткое кодирование

EDIT

Обновление ответа при попытке OP использовать Design.exe.

Как я уже сказал, я бы предпочел НЕ делать этого, но поскольку это требование, давайте посмотрим, что мы можем сделать. Вместо того, чтобы пытаться открыть Design.exe и передать ему, какой файл загрузить, при условии, что файлы Design.exe имеют свое собственное расширение файла (т. пользователь открывает загрузку, Windows (при условии, что это ОС) автоматически использует Design.exe для открытия файла?

0 голосов
/ 09 февраля 2011

Если это абсолютно необходимо, и я советую вам этого не делать ...

Вариант 1:
Если вам нужна только поддержка IE, одним из вариантов является созданиенебольшой элемент управления ActiveX с кнопкой, которая переходит к нужной программе и вставляет ее на веб-страницу.

Опция 2:
Если вы пытаетесь открыть определенный файл внезависимо от того, что является design.exe, и у пользователей есть тип файла, который вы хотите открыть, зарегистрированный для этого приложения в их системах, вы можете просто поместить ссылку на файл с соответствующим расширением на веб-странице, и он откроет приложение с этим файлом.в нем.

...