顯示具有 Hack 標籤的文章。 顯示所有文章
顯示具有 Hack 標籤的文章。 顯示所有文章

2008-04-09

使用 WebBrowser.DocumentText 載入內容時忽略 JavaScript 錯誤

在 Windows Forms 內放置 WebBrowser 控件時, 如果透過 DocumentText 的方式填入有使用 JavaScript 的網頁的話, 若該網頁的 Script 有錯誤的話, 就會跳出煩人的視窗, 實在很討厭, 試了很多屬性都搞不定, 最後只好使用特殊手段來解決 -- 自行嵌入一段錯誤處理的 JavaScript, 這樣就不會有煩人的錯誤視窗了, 要嵌入的 JavsScript 如下:

"<script type='text/javascript'>window.onerror = function(){};</script>"

2007-12-19

Fiddler 又不能攔到 localhost 了

剛把作業系統換成 Vista 的時候, 就曾經發生 Fiddler 不能攔到 localhost 的 Request 的問題, 後來在網路上找到的答案是說只要在 localhost 後面加個 "." 就可以了, 輕輕鬆鬆就解決了!

可是今天再度使用 Fiddler 的時候, 相同的技巧卻失效了, 畫面上出現的是 Exception Text: 無法連線,因為目標電腦拒絕連線。 ::1:64155, 有圖為證:

image

奇妙的是如果把 "localhost." 換成 "127.0.0.1." 就又可以了, 怎麼可能會有這種事情, 打開 cmd.exe 試著 ping localhost 看看, 果然發現了問題, 如圖, 回應的內容是 "回覆自 ::1: time<1ms":

image

要怎麼解決這個問題咧? 最快的治標方法是用記事本打開 C:\Windows\System32\drivers\etc 目錄底下的 hosts 檔案, 把其中一行 "::1 localhost" 前面加個 "#" 註解掉就行了!

2007-08-08

遠端桌面到 Vista Home Premium 版

Vista Home Premium 版本預設是不支援遠端桌面的, 雖說它可能有什麼商業上的考量, 但是對於習慣使用遠端桌面的人來說, 實在是太不方便了, 當然也可以裝個 vnc 之類的 server 來遠端搖控, 但是總覺得效能上還是差了一點, 最好是能把隱藏在 Home Premium 版內的功能重新打開來比較好. Google 一下, 果然已經有人提出解決的辦法了, 親自實驗之後證實是可以的, 而且步驟還超簡單, 只要 [下載] -> [解壓] -> [以 Administrator 的身份執行 命令提示字元] -> [執行 premium.bat 檔] 就搞定了!!

參考: http://portal.tonychan.org/Default.aspx?tabid=58&EntryID=123

2007-08-01

設定 IMEX=1 透過 OleDb 讀取 Excel 仍然出現 null 值的問題

之前在使用 OleDb 讀取 Excel 時, 發生有些欄位雖然有值, 但是讀出來卻是 Null 的問題, 上網查了一下, 說是在連線字串中加入 Extended Properties, 將 IMEX 設為 1, 就可以強迫 OleDb 的 driver 將內容當成文字讀取, 以避免發生型別錯誤而回傳 null. 如下

Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\Data.xls";Extended Properties="Excel 8.0;HDR=Yes;IMEX=1;
但是後來發現有些資料可以成功, 有些不行, 但是如果把資料列的順序作一下改變的話(把非數字的資料放到比較前面的幾列), 就又可以順利讀取, 真是怪到極點, 於是再去問了一下 Google, 終於找到問題的源頭... 原來是 OleDb Driver 的問題, 在機碼 HKLM\Software\Microsoft\Jet\4.0\Engines\Excel 有一個 TypeGuessRows 值, 預設是 8, 表示會先讀取前 8 列來決定每一個欄位的型態, 所以如果前 8 列的資料都是數字, 到了第 9 列以後出現的文字資料都會變成 null, 真是聰明得令人哭笑不得..... 所以如果要解決這個問題, 只要把 TypeGuessRows 機碼值改成 0, 就可以解這個問題了!