2012-07-27 68 views
0

如何通過ASP.net網站運行另一個本地應用程序(使用c#開發的應用程序),並將參數發送到本地應用程序(如名稱,源文件)?在ASP.net網站運行另一個本地應用程序

(據我所知,會有此安全風險,但我會考慮建議)在此先感謝,

回答

1

您可以處理自己的URL協議(如Skype)的作用:

phone://123546 
localapp://data 

然後創建一個鏈接

<a href="localapp://data">Open App</a> 

或嘗試在服務器端重定向

Response.Redirect("localapp://data"); 

and handle it

例:

本地應用程序(C:\ localapp.exe):

using System; 
class LocalApplication 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
    Console.WriteLine(args[0]); 
    Console.ReadLine(); 
    } 
} 

註冊地:

HKEY_CLASSES_ROOT 
    localapp 
      (Default) = "URL:Local App" 
      URL Protocol = "" 
      shell 
       open 
        command 
         (Default) = "c:\localapp.exe" "%1" 

HTML:

<a href="localapp://Hello">Start LocalApp</a> 
+0

感謝您的想法。我也在考慮這個... – lexeRoy 2012-07-27 06:59:44

+0

我們實際上使用它,它的作用就像一個魅力。但它僅限於簡單的參數 – 2012-07-27 07:01:59

+0

你能舉個例子嗎?提前致謝! – lexeRoy 2012-07-27 07:15:31

0

你的意思是服務器或客戶端上啓動一個本地程序?

在服務器上,您可以start a process並將它傳遞給需要訪問的信息的命令行參數。

+0

啓動本地程序他們的本地機器的客戶端..謝謝... – lexeRoy 2012-07-27 06:25:53

+1

不可能。瀏覽器安全限制。 – nunespascal 2012-07-27 06:28:19

+0

@nunespascal - 呃...也許是一個ActiveX控件(那些甚至還在?)無論哪種方式,這聽起來像一個壞主意。 – Tommy 2012-07-27 06:30:50

0

由於大多數現代瀏覽器的安全限制,這是不可能的。

如果你可以限制你的用戶到IE(非常糟糕的做法),ActiveX控件可以做到這一點。這是一個小的代碼片段。

<SCRIPT Language="JScript"> 
function runcmd() { 
File="cmd.exe"; 
WSH=new ActiveXObject("WScript.Shell"); 
WSH.run(File); 
} 
</SCRIPT> 
+0

是的。我知道這一點,但我認爲我不能限制他們。 – lexeRoy 2012-07-27 06:57:31

相關問題