在web頁中呼叫winform程式的方法
2009-04-08 11:30
很顯然,奧妙就在「tencent://message/?uin=215555521&site=jooit.com&menu=yes」這裡,那這又到底是什麼原理呢?
知道了原理,那麼我們照葫蘆畫瓢的做個demosa實驗一下:
開啟visual studio 2008(你也可以用其他的開發工具,delphi,vb都可以),新建乙個windows forms專案,在預設的form1裡新增乙個label控制項(這裡是為了顯示傳遞過來的引數用的,你也可以不這麼做),在窗體的load事件裡寫上如下**:
this.label1.text = strargs;//是form1的宣告為:public的string型別變數
為了讓我們的程式支援命令列引數(winform程式預設沒有命令列引數),我們再到programs.cs裡對main()函式進行改造。
改造後的**如下:
[stathread]
static void main(string args)
else
}將專案編譯。
好了,來到最關鍵的步驟了,在登錄檔中為我們自定義的helloworld協議建立起登錄檔項,從而讓helloworld應用程式支援此協議。將如下的登錄檔項加入即可,這裡為了簡單起見我直接用乙個.reg檔案來實現,也可以用其他方式進行:
windows registry editor version 5.00
[hkey_classes_root\helloworld]
@="helloworld protocol"
"url protocol"=""
[hkey_classes_root\helloworld\defaulticon]
@="d:\\my documents\\visual studio 2005\\projects\\helloworld\\release\\helloworld.exe,1"
[hkey_classes_root\helloworld\shell]
@=""
[hkey_classes_root\helloworld\shell\open]
@=""
[hkey_classes_root\helloworld\shell\open\command]
@="\"d:\\my documents\\visual studio 2005\\projects\\helloworld\\release\\helloworld.exe\" \"%1\""
再來到web頁面進行測試,修改上面的html**如下:
若是要在web頁面呼叫本地的winform程式,同理也是可行的。
windows registry editor version 5.00
[hkey_classes_root\tencent]
@="tencentprotocol"
"url protocol"="d:\\program files\\tencent\\qq\\timwp.exe"
[hkey_classes_root\tencent\defaulticon]
@="d:\\program files\\tencent\\qq\\timwp.exe,1"
[hkey_classes_root\tencent\shell]
[hkey_classes_root\tencent\shell\open]
[hkey_classes_root\tencent\shell\open\command]@="\"d:\\program files\\tencent\\qq\\timwp.exe\" \"%1\""
此登錄檔所實現的就是當瀏覽器(或其它)碰到 tencent://… 時,自動呼叫 timwp.exe,並把 tencent://… 位址作為第乙個引數傳遞給 timwp.exe。
WEB中呼叫WINFORM控制項
參見http liuwu.me post how to including a winforms user control in an aspnet web page 1.aspx 使用vs2010建立了乙個簡單的winform控制項,該控制項僅僅是將顏色變換一下,結果顯示的是物件圖示 非紅叉!折騰...
web端呼叫winform端
在web端定義了乙個方法,需要將值傳給客戶端。1.在web端建立wcf service,定義好方法返回需要傳送的內容。2.在建立wcf service時會有ixx.cs介面類,3.在客戶端的service類,基於soaphttpclientprotocol 在客戶端business定義方法接受值。p...
Web網頁呼叫Winform方法
通過修改winform啟動函式main方法的引數,實現傳參 main string args 應用程式的主入口點。stathread static void main string args else var form newform1 args form.windowstate formwindo...