現在有一些程序是B/S和C/S混合的,在winform裏也可以方便的嵌入web,vs2003和vs2005都提供了這樣的控件。
而還有一種需求,在web上啓動你的winform程序,比較常見的是qq,下載工具等。
笨一點的做法,是通過客戶端js來啓動。這樣做有安全隱患,因此window後面版本的操作系統,嚴格限制了js的權限。
研究qq的實現方式,發現非常簡單。看下面的註冊文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Test]
@="Test"
"URL Protocol"="應用程序路徑%l"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Test/DefaultIcon]
@="%SystemRoot%//system32//url.dll,0"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Test/Shell]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Test/Shell/open]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Test/Shell/open/command]
@="應用程序路徑 %l"
你可以直接將它保存爲一個reg文件然後註冊,或者在你的應用程序安裝時直接修改註冊表。
在你的網頁上加一個這樣的鏈接:
<A href='Test://para1¶2¶3'>
如果你點這個鏈接,你在註冊文件裏的應用程序就可以被啓動了。
還有一個需求,一般從網頁啓動應用需要傳遞參數(上面鏈接後面帶了三個參數),做法如下:
你的應用程序主函數要這樣接收參數:
static void Main(string[] args)
{
if(args.Length>0)
{
//存參數
}
}
通過args[index]就可以訪問到你傳遞的參數了。