如何让客户端计算机上的程序从ASP.NET页面运行?

row*_*age 7 c# asp.net client-side

我有一个应用程序,我试图在Intranet上运行.在我的机器上它工作得很好(着名的遗言)但是当我把它放到服务器上时,它没有用.当我看到"系统找不到指定文件"错误时,我认为它必须是尝试运行客户端计算机上的程序.

是的,如果浏览器中的任何应用程序可以在客户端计算机上运行可执行文件,那将是一场安全噩梦.内联网有什么不同吗?它将运行的几台计算机都具有相同版本的IE和.NET,它们将运行,并且它们都具有运行所需的.exe.

以下是该项目的概述:

  • 员工和参与者走进包含计算机的房间.
  • 员工打开我的网络应用程序并查找该人的ID(此部分有效)
  • 单击"记录"应执行已安装程序的隐藏启动,该程序开始记录.
  • 完成后,员工单击完成(或应用程序超时)并保存文件.
  • 文件上传到服务器.
  • 员工缺乏技术经验,所以我的目标是为他们提供一个网站,只需一个盒子即可获得参与者ID和两个巨大的"RECORD"和"STOP"按钮

任何人都可以帮我解决如何做到这一点(或者至少让我知道这是不可行的)?

chr*_*aut 8

一个想法:您可以注册协议处理程序以使用所需参数启动您的应用程序.


pse*_*der 1

如果您将站点置于 IE 受信任区域或 Intranet 区域中,则以下 Javascript 将正常工作。我在内部使用这个将我们的 PC 支持数据库搜索链接到我们的远程屏幕控制软件:

<script type="text/javascript" language="javascript">
    function runDameWare(strHostname, blControl) {
        var objShell = new ActiveXObject("Wscript.Shell");
        var strCommand = "C:\\Program Files\\Dameware\\dwrcc.exe -c: -h: -m:";
        strCommand += strHostname;
        if (blControl) {
            strCommand += " -v:";
        }
        objShell.Exec(strCommand);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我的理解是,将本地程序中的工作结果上传到Web服务器可以使用该类来完成HttpWebRequest,如本文所示:

http://forums.asp.net/p/1482778/3464854.aspx


编辑:这就是我调用上述函数的方式。基本上我只是渲染一个<a>带有属性的普通元素onclick。可能有一种更干净的方法来做到这一点,但它有效:

标记:

<asp:TemplateField>
    <ItemTemplate>
        <%# RenderDameWareLinks(Eval("ResourceName"))%>
    </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

代码:

Protected Function RenderDameWareLinks(ByVal strHostname As String) As String
    Dim strFullLink As String = String.Empty
    Dim strViewLink As String = String.Empty
    strFullLink = "<a onclick=""runDameWare('" & strHostname & "', false);"">"
    strFullLink &= "<img alt=""Connect using DameWare"" src=""Image/dameware1.gif"" style=""padding: 2px;"" />"
    strFullLink &= "</a><br/>"
    strViewLink = "<a onclick=""runDameWare('" & strHostname & "', true);"">"
    strViewLink &= "<img alt=""Connect (View Only) using DameWare"" src=""Image/dameware2.gif"" style=""padding: 2px;"" />"
    strViewLink &= "</a>"
    Return strFullLink & strViewLink
End Function
Run Code Online (Sandbox Code Playgroud)