請問如何在 BHO 的 BeforeNavigate2 的事件程序中, 將 Headers 這個 OleVariant 參數轉成字串 |
尚未結案
|
jasper
一般會員 發表:2 回覆:3 積分:1 註冊:2005-08-04 發送簡訊給我 |
Dear 各位高手: ---------------------------------------------------------------------- 問題描述: 小弟最近利用 Delphi 在撰寫一個 IE plug-in, 目的在於取得 Http Request Header 的內容後, 再加上自行定義的 Header, 這樣 Web Application (用 ASP.NET 開發) 就可以很簡單地判斷我的 IE plug-in 是否被安裝及是否仍在執行中, 如果沒有, 就導到錯誤網頁. 但發現似乎只有 URL 參數可以被轉成字串; 不知應如何將 Headers 這個 OleVariant 參數轉成字串? 並且將轉換的字串, 加上自訂的 Header (ex: register-code: 123456) 後, 再轉成 OleVariant ---------------------------------------------------------------------- 參考網頁: 有參考以下網頁, 但仍不得解決之法, 還望各位高手相助, 謝謝. http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=55467 利用DELPHI編寫IE擴展 http://www.javaeye.com/topic/470526 Delphi 编写BHO在HTTP头增加自定义属性 ---------------------------------------------------------------------- 程式碼: 程式碼摘要如下: [code delphi] procedure TIEGUIC.DoBeforeNavigate2(const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); const FuncName = '[TIEGUIC.DoBeforeNavigate2]'; var strURL, strTargetFrameName, strOldHeaders, strInfo:string; bCancel:Boolean; strMyHeader:string; strOldHeaders, strNewHeaders:string; oleNewHeaders:OleVairant; begin //保留將 OleVariant 轉為 字串的方式, 以供除錯之用; //但發現只有 URL 變數可以轉換成功, 其它轉換後, 都是空字串. strURL:=VarToStr(URL); strTargetFrameName:=VarToStr(TargetFrameName); strOldHeaders:=VarToStr(Headers); bCancel:=Cancel; strInfo:=format('%sURL:%s TargetFrameName:%s OldHeaders:%s bCancel:%s', [FuncName,strUrl,strTargetFrameName,strOldHeaders,BoolToStr(bCancel,True)]); CodeSite.SendMsg(strInfo); strMyHeader:='register-code: 123456'; strNewHeaders:=strOldHeaders #13#10 strMyHeader #13#10; oleNewHeaders:=strNewHeaders; (pDisp as IWebbrowser2).Navigate2(URL, Flags, TargetFrameName, PostData, oleNewHeaders, Cancel); end; [/code] 備註: 我是剛入門的新手, 請大家多多指教 編輯記錄
jasper 重新編輯於 2009-10-14 10:58:30, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |