全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1897
推到 Plurk!
推到 Facebook!

關於從ActiveX中開啟網頁的問題

缺席
gemini07
一般會員


發表:29
回覆:18
積分:14
註冊:2003-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-20 16:44:23 IP:220.132.xxx.xxx 訂閱
各位前輩好

我現在實做一個 ActiveX 鑲在網頁上面,ActiveX Form中有一個按鈕會執行連接到某一網頁的功能。
另外在進入此 ActiveX 網頁前,必須先讓使用者登入之後,然後點擊ActiveX的連結才會導向正確的網址。

但我發現無法做到像網頁語法 _blank 的效果一樣,因為已經有登錄過,所以會自動導向正確的網址,
而每次用透過 ActiveX 的方式開啟該網頁都需要使用者再重新登入一次。

這是我之前的寫法...
ShellExecute( handle, NULL, "iexplore.exe", url.c_str(), L"_blank", SW_SHOWNORMAL );

後來嘗試使用...
Variant IEbrowser = Variant::CreateObject("InternetExplorer.Application");
IEbrowser.OleProcedure("Navigate",url,"_blank");
但卻在執行第二行程式的時候,發出Exception而失敗。

所以我想請問各位前輩,我該用什麼方法完成我問題中希望做到的效果呢?

謝謝



編輯記錄
gemini07 重新編輯於 2007-08-20 16:45:18, 註解 無‧
taishyang 重新編輯於 2007-08-20 17:16:11, 註解 將文章分類成[問題]‧
gemini07
一般會員


發表:29
回覆:18
積分:14
註冊:2003-04-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-22 10:12:14 IP:220.132.xxx.xxx 訂閱
已經找到解決的方法了,把程式PO上來^^

if (SUCCEEDED(OleInitialize(NULL)))
{
IWebBrowser2* pBrowser2;

CoCreateInstance( CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if (pBrowser2)
{
VARIANT vEmpty;
VariantInit(&vEmpty);

BSTR bstrURL = SysAllocString(url.c_bstr());
HRESULT hr = pBrowser2->Navigate(bstrURL, &vEmpty, &vEmpty, &vEmpty, &vEmpty);
if (SUCCEEDED(hr))
{
pBrowser2->put_Visible(VARIANT_TRUE);
}
else
{
pBrowser2->Quit();
}

SysFreeString(bstrURL);
pBrowser2->Release();
}

OleUninitialize();
}

系統時間:2024-04-25 17:23:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!