[VB.NET]適用於中華大學的選課篩選程式v1.0.0.3(更新20100615)
每次到了要初選、複選的時候,總是為了選課而傷腦筋
最大的困難點在於,哪些課有衝堂,哪些課沒衝堂...
還有 就是哪些課還有 剩下名額..每次都要拉到Excel排序、計算,就時間上而言 是比較耗時的
這...應該困擾很久了吧
以下這一套程式可以滿足以上的需求
撰寫程式花了:
10天
ico來源:
程式使用的圖檔(Clock.ico)為以下網站提供
新版功能1.0.0.3:
程式功能:
(1)實現 課程查詢系統的查詢功能
(2)查詢結果列在一張表
(3)可選擇有空的時間(星期和節次) 和其他項目
(4)直接對照選課資料和 課程大綱
(5)可將喜歡的課程做勾選(顏色反白)
(6)當遇到不可抗拒的因素時(無法連線到 課程查詢系統)時會出現錯誤
(7)避免課程查詢系統的流量過大,因此設定為"分析資料後,每2秒抓一次網頁"
(8)程式下方的狀態列得知目前擷取的狀態
(9)30渺無法取得資料自動取消這次的工作
(10)可調整大小,如下圖
>目前程式在測試,可能會有非預期的狀況,請多多包涵...
程式截圖:
(1)程式主體
(2)進行視窗
(3)所有課程頁面
(4)篩選課程頁面
(5)課程網頁頁面
目前已知的Bug:
(1)有時系別清單未更新成功,這時請按[嘗試更新]
程式技巧:
(1)網頁動作
WebBrowser的Document和DomDocument對網頁的操作幫助很大,例如:按網頁按鈕、輸入文字在TextBox上、POST...等
不過需要加入參考:Microsoft.mshtml [專案]→[加入參考]→[Microsoft.mshtml]
。選擇DropDownList項目->
Browser.Document.GetElementsByTagName(網頁標籤名稱"select").GetElementsByName(Name).Item(0).DomElement.SelectedIndex = 變數
。取得DropDownList項目->
Browser.Document.GetElementsByTagName(網頁標籤名稱"select").GetElementsByName(Name).Item(0).Children(i).InnerText
。選擇Button項目 ->
Browser.Document.GetElementsByTagName(網頁標籤名稱input").GetElementsByName(Name).Item(0).DomElement.Click()
。Form Post 表單 方式 WebBrowser1.Document.GetElementsByTagName(網頁標籤名稱"form").GetElementsByName("form3").Item(0).DomElement.submit()
(2)要能夠操作網頁必須要看懂該網頁程式碼,可利用Firefox的FireBug套件幫忙
(3)WebBrowser遇到連線不穩定時會 有問題,此時就要判斷
01.前次的網頁跟這次的網頁一樣
02.利用Application.DoEvents()等待
03.利用變數WebBrowser.ReadyState = WebBrowserReadyState.Complete
WebBrowser.IsBusy = False
設逾時時間...來確定網頁
(4)當使用者選擇[V]選課時,使用CellContentClick和CellContentDoubleClick 事件
使用者勾選後,該列處於編輯狀態,這時我使用DataGridView.CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange)方法確保資料已經寫進去
(5)幾乎每個控制項都有Ahchor和Dock這個屬性,當使用者改變視窗大小時,可以固定控制項,這兩個值只能設定一個,以最後設定的值優先(Mutual Exclusion)
(6)物件導向程式設計有其重要性
(7)利用DataView的RowFilter設定篩選條件,藉由寫一個Function來建立相關字串,如何撰寫,可參考這裡
撰寫之後的感想:
(1)看似簡單的功能,其實並不好寫
(2)微軟有這麼方便的工具讓我們使用,但是要經過練習才會上手
(3)MSDN很重要,很多時候需要查資料的
(4)網路也很重要,當你不知道該如何下手時,Google一下就有可參考的範例
(5)遇到困難時要想辦法Try,但也不要整天都在寫程式,這樣會失去人性...^^
程式下載:
(1)
v1.0.0.3 連結
v1.0.0.2 連結
v1.0.0.1 連結
由於此程式需要參考mshtml.dll檔,所以欲使用請加入參考,此Dll從.NET 裡面抓的加入參考的
由於程式需要這個檔案才能在其他台執行,所以才加入
如有侵權問題,請來信告知,我會儘快移除此檔
程式修正紀錄:
20100615|v1.0.0.3|新增 關鍵字的包含和不包含功能,節次篩選可以[不包含上述選定時段]
20100614|v1.0.0.2|修正只篩選關鍵字時的錯誤
20100129|v1.0.0.1|修正課程不一致的問題
20100129|v1.0.0.0|修改IE6、IE7出現讀取錯誤的問題







我想學 VB.NET 請問有人要當家教嗎,可否和我聯絡 0938-385-500…