版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1鄭州輕工業(yè)學院鄭州輕工業(yè)學院課程設(shè)計說明書課程設(shè)計說明書題題 目:目:基于項目的基于項目的 c#c#實訓指導書實訓指導書基于基于 vc#vc#的瀏覽器程序設(shè)計的瀏覽器程序設(shè)計 學生姓名:學生姓名:xxxxxxxxxxxxxx專業(yè)班級:專業(yè)班級: 網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程 學學 號:號:指導教師:指導教師:日日 期:期: 20152015 年年 7 7 月月 1 1 日日2目目 錄錄一、一、實訓目的實訓目的-4二、二、實訓題目實訓題目-4三、三、實訓要求實訓要求-4四、實訓步驟四、實訓步驟-54.1、掌握瀏覽器工作原理-54.2 學習瀏覽器工功能結(jié)構(gòu) -64.3 瀏覽器設(shè)計 -74.3.1 瀏覽器功能
2、設(shè)計-74.3.2 瀏覽器界面設(shè)計-74.3.3 瀏覽器代碼設(shè)計-74.4 瀏覽器編寫程序設(shè)計平臺 -84.5 瀏覽器開發(fā)步驟 -84.5.1 熟悉 vs2005 以上平臺,建立項目-84.5.2 瀏覽器界面設(shè)計- 菜單欄設(shè)計 -10 工具欄、用戶區(qū)和狀態(tài)欄設(shè)計 - 功能代碼編輯 -12五、程序源代碼及功能模塊設(shè)計五、程序源代碼及功能模塊設(shè)計-125.1 初始化頁面-125.2 編輯瀏覽器基本功能-145.3 編輯菜單欄功能-165.4 編輯工具欄功能-265.5 編輯 ie 命令功能-275.6 編輯收藏夾功能類-285.7 編輯搜索功函數(shù)
3、-30六、程序運行測試六、程序運行測試-32七七 、項目小結(jié)、項目小結(jié)-33八、附件八、附件-348.1 學時分配 -348.2 參看文獻 -344一實訓目的一實訓目的通過實訓使學生在掌握vc#編程理論的基礎(chǔ)上,推動學生初步掌握基于vc#的網(wǎng)絡(luò)瀏覽器程序的編程方法,為今后的網(wǎng)絡(luò)協(xié)議編程和web服務(wù)編程打下基礎(chǔ)。二實訓題目二實訓題目使用c#網(wǎng)絡(luò)編程語言,在vs2005版本以上平臺編程,基于vc#的瀏覽器程序設(shè)計。三實訓要求三實訓要求1.能夠熟練使用vs2005以上版本的編程平臺,熟悉平臺菜單欄、工具欄和各種窗口的使用,掌握不同項目類型創(chuàng)建步驟和使用以及平臺類庫的使用。2.熟練掌握c#語法與程序結(jié)
4、構(gòu),能夠熟練創(chuàng)建程序功能所需的類、對象、接口等,并通過派生與繼承實現(xiàn)代碼重用,通過事件與消息實現(xiàn)對象之間的交互。3.熟練掌握權(quán)利瀏覽器程序所需的各種部件的使用,能夠正確使用菜單、工具欄和窗口控件完成瀏覽器程序界面設(shè)計,并能夠完成這些部件的相應(yīng)響應(yīng)函數(shù)代碼編寫,完成部件與函數(shù)之間的消息映射。4.按照軟件工程的要求的功能分析、程序設(shè)計、代碼編寫、程序調(diào)試、功能測試等步驟,完成實訓項目要求。5.提交“基于c#操作平臺下實現(xiàn)的的瀏覽器器程序設(shè)計”設(shè)計方案與程序源代碼。5四實訓步驟四實訓步驟4.14.1 掌握瀏覽器工作原理掌握瀏覽器工作原理瀏覽器工作原理如圖4-1 所示。圖4-1 瀏覽器工作原理(1)
5、瀏覽器分析超鏈指向頁面的 url。(2) 瀏覽器向 dns 請求并解析 的 ip 地址。(3) 域名系統(tǒng) dns 解析出清華大學服務(wù)器的 ip 地址。(4) 瀏覽器與服務(wù)器建立 tcp 連接(5) 瀏覽器發(fā)出取文件命令: get /chn/yxsz/index.htm。(6) 服務(wù)器給出響應(yīng),把文件 index.htm 發(fā)送給瀏覽器。6(7) tcp 連接的釋放。(8) 瀏覽器顯示文件 index.htm 中的所有文本信息4.24.2 學習瀏覽器功能結(jié)構(gòu)學習瀏覽器功能結(jié)構(gòu)瀏覽器程序功能結(jié)構(gòu)如圖4-2 所示。圖4-2 瀏覽器功能結(jié)構(gòu)1) 瀏覽器有一組客戶、一組解釋程序,以及管理這些客戶和解釋程序
6、的控制程序。 2) 控制程序是其中的核心部件,它解釋鼠標的點擊和鍵盤的輸入, 并調(diào)用有關(guān)的組件來執(zhí)行用戶指定的操作。 3) 例如,當用戶用鼠標點擊一個超鏈的起點時,控制程序就調(diào)用一個客戶從所需文檔所在的遠地服務(wù)器上取回該文檔,并調(diào)用解釋程序向用戶顯示該文檔 4) html 解釋程序是必不可少的,而其他的解釋程序則是可選的。 5) 解釋程序把 html 規(guī)格轉(zhuǎn)換為適合用戶顯示硬件的命令來處理版面的細節(jié)。 76) 許多瀏覽器還包含 ftp 客戶,用來獲取文件傳送服務(wù)。 7) 一些瀏覽器也包含電子郵件客戶,使瀏覽器能夠發(fā)送和接收電子郵件 8) 瀏覽器將它取回的每一個頁面副本都放入本地磁盤的緩存中。
7、9) 當用戶用鼠標點擊某個選項時,瀏覽器首先檢查磁盤的緩存。若緩存中保存了該項,瀏覽器就直接從緩存中得到該項副本而不必從網(wǎng)絡(luò)獲取,這樣就明顯地改善瀏覽器的運行特性。 10)但緩存要占用磁盤大量的空間,而瀏覽器性能的改善只有在用戶再次查看緩存中的頁面時才有幫助。 11)許多瀏覽器允許用戶調(diào)整緩存策略。 4.34.3 瀏覽器設(shè)計瀏覽器設(shè)計 .1瀏覽器功能設(shè)計瀏覽器功能設(shè)計 瀏覽器功能設(shè)計主要確定設(shè)計好的瀏覽器需要具備哪些功能,以及這些功能是以什么方式進行實現(xiàn),這個步驟相當于軟件設(shè)計中的“需求分析”,其中必須保證基本功能的具備,即瀏覽器必須能夠瀏覽web頁面。 .2
8、瀏覽器界面設(shè)計瀏覽器界面設(shè)計 瀏覽器界面設(shè)計主要確定瀏覽器的頁面布局,設(shè)定瀏覽器窗口上設(shè)置哪些功能菜單項、設(shè)置哪些功能按鈕、設(shè)置哪些狀態(tài)欄,它們各自的位置如何、屬性如何、對應(yīng)的變量如何等等。 .3 瀏覽器代碼設(shè)計瀏覽器代碼設(shè)計8瀏覽器代碼設(shè)計主要是確定對上述的設(shè)計的功能在代碼上怎樣實現(xiàn),包括選用的程序語言和編程平臺選擇、程序代碼的編寫、程序代碼的調(diào)試、程序功能的測試等等。 4.44.4 瀏覽器編寫程序設(shè)計平臺瀏覽器編寫程序設(shè)計平臺 (1)vs2005版本以上編程操作平臺 (2)webbrowser類及其使用 (3)一些瀏覽器程序的代碼分析4.54.5 瀏覽器開發(fā)步驟瀏覽器開發(fā)步
9、驟.1 熟悉熟悉vs2005vs2005以上平臺,建立項目以上平臺,建立項目打開vs2005選擇“創(chuàng)建項目”,進入“新建項目”,如圖4-1所示。圖4-1 “新建項目”對話框在“新建項目”對話框的項目類型窗口中選中“visual c#”作為項9目開發(fā)語言,在模板窗口中選中“windows 應(yīng)用程序”作為項目開發(fā)模板,在“名稱”、“位置”編輯框中輸入自己設(shè)定的項目名字和項目存儲位置,本講義使用“csharp瀏覽器”作為項目名稱,如圖4-2所示。圖4-2 輸入新建項目的屬性完成輸入內(nèi)容后,單擊“確定”按鈕,進入項目vc#開發(fā)窗口“form.cs設(shè)計”,如圖4-3所示。10圖4-3 v
10、c#開發(fā)窗口“form.cs設(shè)計”.2 界面設(shè)計界面設(shè)計菜單欄設(shè)計,如圖所示。圖4-4設(shè)計“文件”菜單11圖4-5設(shè)計“編輯”菜單圖4-6設(shè)計“查看”菜單圖4-7設(shè)計“收藏”菜單12圖4-8設(shè)計“工具”菜單工具欄、用戶區(qū)和狀態(tài)欄設(shè)計,如圖所示圖4-9工具欄和狀態(tài)欄 功能代碼編輯雙擊“form”設(shè)計頁面進入代碼編寫頁面如圖所示:13圖4-10 代碼編寫頁面五五 程序源代碼及功能模塊設(shè)計:程序源代碼及功能模塊設(shè)計:5.15.1 初始化頁面,代碼如下:初始化頁面,代碼如下:using system;usingsystem.collection
11、s.generic;usingsystem.componentmodel;usingsystem.data;usingsystem.drawing;usingsystem.text;usingsystem.windows.forms;using system.io;usingsystem.threading;usingmshtml;using system.net;usingsystem.runtime.interopservices;usingshdocvw;namespacecsharppublicpartialclassform1 : form public form1() initia
12、lizecomponent(); 14/*/ 外部?api調(diào)用聲明 /*/dllimport(user32.dll)publicstaticexternintsendmessage(intptrhwnd, uintmsg, intwparam,intlparam); dllimport(user32.dll)publicstaticexternintptrfindwindowex(intptrhwndparent,intptrhwndchildafter, stringlpszclass, stringlpszwindow);/*/ 公用id調(diào)用聲明/*/publicint idm_addfa
13、vorites = 2261; /添加到收藏夾 publicint id_ie_file_importexport = 374; /導入與導出publicint id_ie_file_senddesktopshortcut = 284; /桌面快捷方式publicint id_ie_file_newmail = 279; /新建郵件publicuint wm_command = 0 x0111;/*/ 常用變量聲明 /*/intlianjie_btn_cishu = 0; /鏈接狀態(tài)按鈕單擊次數(shù)stringurl_text; /導航欄的url文本(用于普通的輸網(wǎng)址瀏覽和回車瀏覽listcish
14、u = newlist(); /儲存尋找關(guān)鍵字符的位置?inti = 0;/記錄列表cishu的下標publicvoidliulan() tryif (this.tabcontrol1.tabpages != null)if (this.tabcontrol1.selectedtab.text = 空白頁)(ctabpage)(this.tabcontrol1.selectedtab).navigate = url_text;elsethreadthdprocess = newthread(newthreadstart(thread_newnavigatetabpages);thdproces
15、s.start();catch (system.exception ex)throw ex;155.25.2 編輯瀏覽器基本功能,代碼如下:編輯瀏覽器基本功能,代碼如下:/*/ 新建空白頁方法 /*/publicvoidnewnulltabpages() ctabpagetabpage = newctabpage(this); this.urlbox.text = about:blank;this.tabcontrol1.tabpages.add(tabpage);this.tabcontrol1.selectedtab = tabpage;this.text = 空白頁_csharp瀏覽器;
16、tabpage.text = 空白頁;this.toolstripstatuslabel1.text = csharp瀏覽器;/*/ 新建空白頁線程/*/privatevoidthread_newnulltabpages() methodinvoker mi = newmethodinvoker(this.newnulltabpages); this.begininvoke(mi); thread.sleep(20); /*/ 新建有導航地址的頁面/ (用于普通的輸入網(wǎng)址瀏覽和回車瀏覽)/*/publicvoidnewnavigatetabpages() ctabpagetabpage = n
17、ewctabpage(this);this.tabcontrol1.tabpages.add(tabpage);tabpage.navigate = url_text;this.tabcontrol1.selectedtab = tabpage;/*/ 新建有導航地址的線程/ (用于普通的輸入網(wǎng)址瀏覽和回車瀏覽) /*/privatevoidthread_newnavigatetabpages() methodinvoker mi = newmethodinvoker(this.newnavigatetabpages);16this.begininvoke(mi);thread.sleep(2
18、0);/*/ 按回車按鈕進行瀏覽/*/privatevoidurlbox_keydown(object sender, keyeventargs e) if (e.keycode = keys.enter)url_text = this.urlbox.text;liulan();/*/ 雙擊鼠標刪除頁面/*/privatevoid tabcontrol1_mousedoubleclick(object sender, mouseeventargs e) (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.dispose();tabcontro
19、l1.tabpagestabcontrol1.selectedindex.dispose();if (tabcontrol1.tabpages.count=1)tabcontrol1.selectedtab = tabcontrol1.tabpagestabcontrol1.tabpages.count -1; /*/ 進行頁面切換/*/privatevoid tabcontrol1_selectedindexchanged(object sender, eventargs e) if (this.tabcontrol1.selectedtab != null)this.urlbox.text
20、 = (ctabpage)(this.tabcontrol1.selectedtab).navigate;this.text = (ctabpage)(this.tabcontrol1.selectedtab).tooltiptext;if (ctabpage)(this.tabcontrol1.selectedtab).text = 空白頁)this.text = 空白頁_csharp瀏覽器;elsethreadthdprocess = newthread(newthreadstart(thread_newnulltabpages);thdprocess.start();175.35.3 編
21、輯菜單欄功能,代碼如下:編輯菜單欄功能,代碼如下:/*/ 打開鏈接狀態(tài)/*/ privatevoid 打開連接狀態(tài)_click(object sender, eventargs e) richtextbox1.visible = true;panel3.visible = true;/*/ 清除鏈接狀態(tài)/*/ privatevoid 清?除ytoolstripmenuitem_click(object sender, eventargs e) richtextbox2.clear();/*/ 關(guān)閉鏈接狀態(tài)欄/*/ privatevoid 關(guān)閉連接狀態(tài)_click(object sender,
22、eventargs e) richtextbox1.visible = false;panel3.visible = false;richtextbox1.clear();/*/ 清除鏈接狀態(tài)欄(快捷菜單)/*/ privatevoid 清除連接狀態(tài)_click(object sender, eventargs e) richtextbox1.clear();/*/ 關(guān)閉鏈接狀態(tài)欄(快捷菜單)/*/ privatevoid 關(guān)閉鏈接狀態(tài)欄toolstripmenuitem1_click(object sender, eventargs e) richtextbox2.visible = fal
23、se;panel2.visible = false;richtextbox2.clear();18/*/ 查看源文件方法/*/ privatevoidgethtmlsource() stringmyurl = (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.url.tostring(); system.io.stream stream = null;webclient client = newwebclient();stream = client.openread(myurl);streamreaderreaderofstream = n
24、ewstreamreader(stream, system.text.encoding.getencoding(gb2312);string aa = readerofstream.readtoend();/ close the stream. stream.close();richtextbox2.text = aa;/*/ 查看源文件按鈕 /*/ privatevoid 打開源文件_click(object sender, eventargs e) trytextbox.focus();richtextbox2.visible = true;panel2.visible = true;ge
25、thtmlsource();catchmessagebox.show(無法連接到該網(wǎng)站,或沒打開網(wǎng)站,請檢查您的網(wǎng)絡(luò)是否正常,提示);richtextbox2.visible = false;panel3.visible = false; /*/ 查找源文件(下一步)/*/ privatevoid 下一個_click(object sender, eventargs e) richtextbox2.focus();stringrichtext, findtext;richtext = richtextbox2.text;19findtext = textbox.text;if (richtex
26、t.contains(findtext)i+;cishu.add(richtextbox2.find(findtext, cishui - 1, richtext.length, 0);cishui += findtext.length;/*/ 查找源文件(上一步)/*/ privatevoid 上一個_click(object sender, eventargs e) richtextbox2.focus();stringrichtext, findtext;richtext = richtextbox2.text;findtext = textbox.text;if (richtext.c
27、ontains(findtext) &i 0)int y = cishui - 1;y -= findtext.length;if (y = 1) tabcontrol1.selectedtab = tabcontrol1.tabpagestabcontrol1.tabpages.count -1;/*/ 關(guān)閉全部頁(菜單欄)/*/ privatevoid 全?部?關(guān)?閉?toolstripmenuitem_click(object sender, eventargs e) tabcontrol1.tabpages.clear();/*/ 退出當前頁(菜單欄) /*/ privatev
28、oid 退?出?xtoolstripmenuitem_click(object sender, eventargs e)application.exit();/*/ 查看連接狀態(tài)(菜單欄)/*/ privatevoid 查看連接狀態(tài)toolstripmenuitem_click(object sender, eventargs e)richtextbox1.visible = true;panel3.visible = true;21/*/ 清空連接狀態(tài)(菜單欄)/*/ privatevoid 清空連接狀態(tài)信息toolstripmenuitem_click(object sender, eve
29、ntargs e) richtextbox1.clear();/*/ 關(guān)閉連接狀態(tài)(菜單欄)/*/ privatevoid 關(guān)閉連接狀態(tài)toolstripmenuitem_click(object sender, eventargs e)richtextbox1.visible = false;panel3.visible = false;richtextbox1.clear();/*/ 打開當前源文件(菜單欄)/*/ privatevoid 打開源文件toolstripmenuitem_click(object sender, eventargs e)trytextbox.focus();r
30、ichtextbox2.visible = true;panel2.visible = true;gethtmlsource();catchmessagebox.show(無法連接到該網(wǎng)站,或沒打開網(wǎng)站,請檢查您的網(wǎng)絡(luò)是否正常,提示 );/panel1.dock = dockstyle.fill;panel3.visible = false;richtextbox2.visible = false;/*/ 關(guān)閉當前源文件(菜單欄) /*/ privatevoid 關(guān)閉源文件toolstripmenuitem_click(object sender, eventargs e)richtextbo
31、x2.visible = false;22panel2.visible = false;richtextbox2.clear();/*/ 另存為(菜單欄)/*/ privatevoid 另存為toolstripmenuitem_click(object sender, eventargs e) try(ctabpage)(this.tabcontrol1.selectedtab).webbrowser.showsaveasdialog();catch (system.exception ex)throw ex; /*/ 屬性(菜單欄)/*/ privatevoid 屬性toolstripmen
32、uitem_click(object sender, eventargs e)try(ctabpage)(this.tabcontrol1.selectedtab).webbrowser.showpropertiesdialog();catch (system.exception ex)throw ex; /*/ 頁面設(shè)置(菜單欄)/*/ privatevoid 頁面設(shè)置toolstripmenuitem_click(object sender, eventargs e)try(ctabpage)(this.tabcontrol1.selectedtab).webbrowser.showpag
33、esetupdialog();catch (system.exception ex)throw ex; 23/*/ 打印預(yù)覽(菜單欄) /*/ privatevoid 打印預(yù)覽toolstripmenuitem_click(object sender, eventargs e) try(ctabpage)(this.tabcontrol1.selectedtab).webbrowser.showprintpreviewdialog();catch (system.exception ex)throw ex; /*/ 打?。ú藛螜冢?/*/ privatevoid 打印toolstripmenu
34、item_click(object sender, eventargs e) try(ctabpage)(this.tabcontrol1.selectedtab).webbrowser.showprintdialog();catch (system.exception ex)throw ex;/*/ 添加到收藏夾(菜單欄) /*/ privatevoid 添加到收藏夾toolstripmenuitem_click(object sender, eventargs e)tryfindinvokeieservercommand(idm_addfavorites);catch (system.ex
35、ception ex)throw ex;/*/24/ 整理收藏夾(菜單欄) /*/ privatevoid 整理收藏夾toolstripmenuitem_click(object sender, eventargs e)tryshelluihelper helper = newshelluihelper();object o = null;helper.showbrowserui(organizefavorites, ref o); catch (system.exception ex)throw ex; /*/ 導入與導出(菜單欄) /*/ privatevoid 導入與導出toolstri
36、pmenuitem_click(object sender, eventargs e)tryfindshelldocobjectviewcommand(id_ie_file_importexport);catch (system.exception ex)throw ex;/*/ 桌面快捷方式(菜單欄)/*/ privatevoid 桌面快捷方式toolstripmenuitem_click(object sender, eventargs e)tryfindshelldocobjectviewcommand(id_ie_file_senddesktopshortcut);catch (sys
37、tem.exception ex)throw ex;/*/25/ 電子郵件(菜單欄)/*/ privatevoid 電子郵件ttoolstripmenuitem_click(object sender, eventargs e)tryfindshelldocobjectviewcommand(id_ie_file_newmail);catch (system.exception ex)throw ex; /*/ internet選項(菜單欄)/*/ privatevoid internet選項toolstripmenuitem_click(object sender, eventargs e)
38、trysystem.diagnostics.process.start(c:/windows/system32/inetcpl.cpl);catch (system.exception ex)throw ex;/*/ 標準按鈕(菜單欄)/*/ privatevoid 標準按鈕toolstripmenuitem_click(object sender, eventargs e) if (標準按鈕toolstripmenuitem.checked = true)tsbut_newnulltab.visible = false;tsbut_back.visible = false;tsbut_for
39、ward.visible = false;tsbut_refurbish.visible = false;tsbut_stop.visible = false;tsbut_homepage.visible = false;標準按鈕toolstripmenuitem.checked = false;else26tsbut_newnulltab.visible = true;tsbut_back.visible = true;tsbut_forward.visible = true;tsbut_refurbish.visible = true;tsbut_stop.visible = true;t
40、sbut_homepage.visible = true;標準按鈕toolstripmenuitem.checked =true; /*/ 地址欄(菜單欄) /*/ privatevoid 地址欄toolstripmenuitem_click(object sender, eventargs e)if (地址欄toolstripmenuitem.checked = false)toolstrip.visible =true ; 地址欄toolstripmenuitem.checked = true ;/ btn_liulan.visible = false;elsetoolstrip.visi
41、ble = false ;地址欄toolstripmenuitem.checked = false; /btn_liulan.visible = true;/*/ 狀態(tài)欄(菜單欄) /*/ privatevoid 狀態(tài)欄toolstripmenuitem_click(object sender, eventargs e)if (狀態(tài)欄toolstripmenuitem.checked = false)statusstrip1.visible = true ;狀態(tài)欄toolstripmenuitem.checked = true;else statusstrip1.visible = false
42、 ; 狀態(tài)欄toolstripmenuitem.checked = false;275.45.4 編輯工具欄功能,代碼如下:編輯工具欄功能,代碼如下:/*/ 按瀏覽按鈕進行瀏覽/*/ privatevoid toolstripbutton9_click(object sender, eventargs e) url_text = this.urlbox.text;liulan(); /*/ 工具欄新建空頁面 /*/privatevoidtsbut_newnulltab_click(object sender, eventargs e) threadthdprocess = newthread(
43、newthreadstart(thread_newnulltabpages);thdprocess.start();/*/ 后退,返回先前頁面/*/privatevoidtsbut_back_click(object sender, eventargs e) (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.goback(); /*/ 前進,瀏覽新頁面 /*/privatevoidtsbut_forward_click(object sender, eventargs e) (ctabpage)(this.tabcontrol1.selec
44、tedtab).webbrowser.goforward();/*/ 刷新當前頁面/*/privatevoidtsbut_refurbish_click(object sender, eventargs e) if(!(ctabpage)(this.tabcontrol1.selectedtab).webbrowser.url.equals(about:blank) (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.refresh();28/關(guān)閉當前頁面privatevoid toolstripbutton1_click(object se
45、nder, eventargs e) (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.dispose();tabcontrol1.tabpagestabcontrol1.selectedindex.dispose();if (tabcontrol1.tabpages.count = 1) tabcontrol1.selectedtab = tabcontrol1.tabpagestabcontrol1.tabpages.count - 1; /*/ 停止當前頁面/*/privatevoidtsbut_stop_click(object s
46、ender, eventargs e) (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.stop();/*/ 回到當前主頁/*/privatevoidtsbut_homepage_click(object sender, eventargs e) (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.gohome();/*/ 單擊搜索按鈕/*/ privatevoidbutton_find_click(object sender, eventargs e)search();/*/ 回車進行
47、搜索/*/ privatevoidtextbox_findneirong_keydown(object sender, keyeventargs e)if (e.keycode = keys.enter)search(); 295.55.5 編輯編輯ieie命令功能,代碼如下命令功能,代碼如下/*/ 調(diào)用ie隱藏命令/ (即調(diào)用internet explorer_server的命令) /*/ privatevoidfindinvokeieservercommand(intnid) /調(diào)用ie隱藏命令,既調(diào)用internet explorer_server的命令intptrvhandle = (
48、ctabpage)(this.tabcontrol1.selectedtab).webbrowser.handle;vhandle = findwindowex(vhandle, intptr.zero, shell embedding, null);vhandle = findwindowex(vhandle, intptr.zero, shell docobject view, null);vhandle = findwindowex(vhandle, intptr.zero, internet explorer_server, null);sendmessage(vhandle, wm_
49、command, nid, (int)handle);/*/ 調(diào)用ie隱藏命令/ (即調(diào)用shell docobject view的命令)/*/ privatevoidfindshelldocobjectviewcommand(intnid)intptrvhandle = (ctabpage)(this.tabcontrol1.selectedtab).webbrowser.handle;vhandle = findwindowex(vhandle, intptr.zero, shell embedding, null);/vhandle = findwindowex(vhandle, int
50、ptr.zero, internet explorer_server, null);vhandle = findwindowex(vhandle, intptr.zero, shell docobject view, null);sendmessage(vhandle, wm_command, nid, (int)handle);5.65.6 編輯收藏夾功能類編輯收藏夾功能類 ,代碼如下:,代碼如下:/*/ 動態(tài)生成收藏夾/*/ privatevoidshoucangmenuitem() trystringfavorfolder = environment.getfolderpath(envi
51、ronment.specialfolder.favorites); /獲取系統(tǒng)收藏夾路徑listfiles(收藏夾dmenuitem, newdirectoryinfo(favorfolder);30catch (system.exception ex)throw(ex);/*/ 生成收藏夾的函數(shù)(遞歸)/*/ publicvoidlistfiles(toolstripmenuitemtoolstripmenuitem, filesysteminfo info) if (!info.exists) return;directoryinfodir = info asdirectoryinfo;/
52、不是目錄if (dir = null) return;filesysteminfo files = dir.getfilesysteminfos();scjmenuitem shoucangsmenuitem = newscjmenuitemfiles.length;for (inti = 0; ifiles.length; i+)fileinfo file = filesi asfileinfo;/是文件if (file !=null)shoucangsmenuitemi = newscjmenuitem(file.name,file.fullname);shoucangsmenuitemi
53、.click += neweventhandler(shoucangsmenuitem_click);/把獲得的url賦值給菜單工具提示文本toolstripmenuitem.dropdownitems.add(shoucangsmenuitemi); /對于子目錄,進行遞歸調(diào)用elsedirectoryinfo direct = filesi asdirectoryinfo;shoucangsmenuitemi = newscjmenuitem(filesi.name);/shoucangsmenuitemi.click += neweventhandler(shoucangsmenuite
54、m_click); toolstripmenuitem.dropdownitems.add(shoucangsmenuitemi);listfiles(shoucangsmenuitemi, newdirectoryinfo(direct.fullname); /遞歸使用,生成子菜單/*/ 生成收藏夾的進程/*/ privatevoidthread_shoucangmenuitem() methodinvoker mi = newmethodinvoker(this.shoucangmenuitem);this.begininvoke(mi);31thread.sleep(20);/*/ 單擊
55、收藏夾事件/*/ privatevoidshoucangsmenuitem_click(object sender, eventargs e) tryscjmenuitemmenuitem = (scjmenuitem )sender;url_text = menuitem.urltext;liulan(); catch (system.exception ex)throw ex; /*/ 啟動收藏夾菜單線程/*/ privatevoid timer1_tick(object sender, eventargs e)threadshoucangmenuitemprocess = newthread(newthreadstart(thread_shoucangmenuitem);shoucangmenuitemprocess.start();timer1.stop();5.75.7 編輯搜索功函數(shù),代碼如下:編輯搜索功函數(shù),代碼如下:/*/ 搜索功能函數(shù)/*/ privatevoid search()stringsearchurl = null;if (!textbox_findneirong
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 眉山藥科職業(yè)學院《軟件工程與》2023-2024學年第一學期期末試卷
- 2024年度校園食堂承包與食品安全監(jiān)管合同3篇
- 2024年度汽車貸款信用保證保險合同3篇
- 2024年標準版房地產(chǎn)項目資本金監(jiān)管協(xié)議版B版
- 2024年版:教育貸款申請合同3篇
- 影調(diào)的造型作用
- 呂梁師范高等??茖W?!吨袊鞘邪l(fā)展史》2023-2024學年第一學期期末試卷
- 2024全新指紋鎖智能家居控制系統(tǒng)集成合同2篇
- 2024年特色手工藝品買賣合同詳細
- 2024年標準膩子施工勞務(wù)分包合同樣本版B版
- 2025屆浙江省杭州市高三一模語文試題
- 管道承諾質(zhì)量保證書范本
- DB14-T 1049.1-2020 山西省用水定額 第1部分:農(nóng)業(yè)用水定額
- 10以內(nèi)連加連減練習題(直接打印版)
- 預(yù)防性侵害安全教育
- 2024秋期國家開放大學《機械設(shè)計基礎(chǔ)》一平臺在線形考(形考任務(wù)1至4)試題及答案
- 2024秋期國家開放大學專科《液壓與氣壓傳動》一平臺在線形考(形考任務(wù)+實驗報告)試題及答案
- 北師版八年級數(shù)學上冊 第四章 一次函數(shù)(壓軸專練)(十大題型)
- 計算機網(wǎng)絡(luò)技術(shù)基礎(chǔ)考核試卷
- 2024中國鋁業(yè)集團限公司應(yīng)屆高校畢業(yè)生招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 第1課時淘氣的一天(教學設(shè)計)-2024-2025學年北師大版(2024)一年級上冊數(shù)學
評論
0/150
提交評論