線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2297
推到 Plurk!
推到 Facebook!

突發奇想-IE AutoReflash

 
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-12 14:13:36 IP:203.65.xxx.xxx 未訂閱
我每天都會掛在網路上, 每天都開著論壇, 但我不知道何時誰po了文章 所以想到時, 再按一下reflash鈕..... 想寫一個AP, 每隔一段時間就幫我按IE的Relfash鈕...... 可是, 我每次會開4個視窗, 想要同時對IE的4個視窗按reflash 要怎麼作呀? 請高手教一下, 也方便大家 ^^
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-16 16:56:33 IP:61.218.xxx.xxx 未訂閱
試試微軟的 Internet Explorer Administration Kit (IEAK) 6    網址:http://www.microsoft.com/windows/ieak/default.asp    繁體下載: http://download.microsoft.com/download/IE60/fnlrtw/ie6/W98NT42KMe/TW/ieak6.exe     如果要控制mozilla請到下面網站瞧瞧! http://www.iol.ie/~locka/mozilla/mozilla.htm Mozilla ActiveX Control Mozilla ActiveX Control下載:http://www.iol.ie/~locka/mozilla/control.htm#usingC 可以做到您要的功能!如果成功了!請分享您的成果! 時間就是金錢 << 發問前請先找找舊文章 >> 發表人 - axsoft 於 2002/07/16 17:06:45
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-17 11:08:27 IP:61.222.xxx.xxx 未訂閱
不小心試出來了, 原理就是對要Reflash的網頁丟Hotkey F5 1. 找出IE的Handle (IEFrame) 2. 比對找到的這個IE是否和我們要reflash的網址相符 IE Handle的往下第三個Child Window送WM_GETTEXT 可取得 3. IE 有個IE server的Class, 送F5和WM_KEYDOWN, 就可作Reflash囉 ^^ 這是一個笨方法, 但簡單多了
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-29 13:46:33 IP:211.23.xxx.xxx 未訂閱
目前最ready的code, 寫得不好別打我, 還請給我多指教    void __fastcall TForm1::Timer1Timer(TObject *Sender) {         char WWW[255];         String Str, IPAddress;         int i, j;         //IE 的Class是IEFrame, 由tool可以找出         IEHandle=FindWindow("IEFrame", NULL);         if (IEHandle==NULL)         {           ShowMessage("瀏覽器尚未開啟");           return;         }            do{           GetHandle=IEHandle;           //網址在往下第三個Child裡           for (i=0; i<3; i ) GetHandle=GetWindow(GetHandle, GW_CHILD); GetClassName(GetHandle, WWW, 255); Str=WWW; if (Str!="ComboBoxEx32") {//如果不是IE6.0要再開下抓一次 GetHandle=GetWindow(GetHandle, GW_HWNDNEXT); GetClassName(GetHandle, WWW, 255); Str=WWW; if (Str!="ComboBoxEx32") { ShowMessage("這版的IE不支援"); return; } } //取得字串, 用GetWindowText不知為什麼捉不到 SendMessage(GetHandle, WM_GETTEXT, 255, (LPARAM)WWW); Str=WWW; for (j=1; jRowCount; j ) { IPAddress=SG->Cells[1][j]; //沒先抓出來會有Bug i=strnicmp(Str.c_str(), IPAddress.c_str(), IPAddress.Length()); // if (Str==IPAddress) if (i==0) ReFlashIE(); } do{ IEHandle=GetWindow(IEHandle, GW_HWNDNEXT); if (IEHandle==NULL) break; GetClassName(IEHandle, WWW, 255); Str=WWW; }while(Str!="IEFrame"); }while(IEHandle != NULL); } void __fastcall TForm1::ReFlashIE() { //取得IE Server的Handle GetHandle=GetWindow(IEHandle, GW_CHILD); for (int i=0; i<3; i ) { GetHandle=GetWindow(GetHandle, GW_HWNDNEXT); } GetHandle=GetWindow(GetHandle, GW_CHILD); PostMessage(GetHandle, WM_KEYDOWN, VK_F5, 0x3F0001); }
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-29 17:59:36 IP:211.23.xxx.xxx 未訂閱
忘了宣告IEHandle和GetHandle在我的.h檔 HWND IEHandle, GetHandle;
tony115722
一般會員


發表:53
回覆:63
積分:23
註冊:2002-07-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-07-30 09:11:06 IP:61.30.xxx.xxx 未訂閱
呵...還有...jRowCount..你也沒宣告唷...    
引言: 忘了宣告IEHandle和GetHandle在我的.h檔 HWND IEHandle, GetHandle;
< >< > I like DeBug
------
I like DeBug
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-07-30 09:36:49 IP:211.23.xxx.xxx 未訂閱
看得懂就好了, 整個程式我也不知道怎麼po啦 :~~~~~ 還有, 我把想要更新的網址, 用StringGrid來放. 主要的目的, 是給大家看我怎麼去抓IE的網址作 比對, 然後再對應要flash的IE視窗丟F5
tony115722
一般會員


發表:53
回覆:63
積分:23
註冊:2002-07-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-07-30 14:11:53 IP:210.200.xxx.xxx 未訂閱
嗯...不錯的想法...加油囉.. I like DeBug
------
I like DeBug
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-08-08 15:35:54 IP:61.222.xxx.xxx 未訂閱
小小的心得: String WWW="http://www.pchome.com.tw"; ShellExecute(NULL, NULL, WWW.c_str(), NULL, NULL, SW_SHOW); 和 ShellExecute(NULL, NULL, "explorer", WWW.c_str(), NULL, SW_SHOW); 有小小的不一樣唷, 有空玩玩看
monjon
一般會員


發表:1
回覆:3
積分:0
註冊:2002-08-17

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-08-17 20:10:40 IP:61.225.xxx.xxx 未訂閱
編譯完成後在win2000server的環境中就當機了!!!
引言: 目前最ready的code, 寫得不好別打我, 還請給我多指教 void __fastcall TForm1::Timer1Timer(TObject *Sender) { char WWW[255]; String Str, IPAddress; int i, j; //IE 的Class是IEFrame, 由tool可以找出 IEHandle=FindWindow("IEFrame", NULL); if (IEHandle==NULL) { ShowMessage("瀏覽器尚未開啟"); return; } do{ GetHandle=IEHandle; //網址在往下第三個Child裡 for (i=0; i<3; i ) GetHandle=GetWindow(GetHandle, GW_CHILD); GetClassName(GetHandle, WWW, 255); Str=WWW; if (Str!="ComboBoxEx32") {//如果不是IE6.0要再開下抓一次 GetHandle=GetWindow(GetHandle, GW_HWNDNEXT); GetClassName(GetHandle, WWW, 255); Str=WWW; if (Str!="ComboBoxEx32") { ShowMessage("這版的IE不支援"); return; } } //取得字串, 用GetWindowText不知為什麼捉不到 SendMessage(GetHandle, WM_GETTEXT, 255, (LPARAM)WWW); Str=WWW; for (j=1; jRowCount; j ) { IPAddress=SG->Cells[1][j]; //沒先抓出來會有Bug i=strnicmp(Str.c_str(), IPAddress.c_str(), IPAddress.Length()); // if (Str==IPAddress) if (i==0) ReFlashIE(); } do{ IEHandle=GetWindow(IEHandle, GW_HWNDNEXT); if (IEHandle==NULL) break; GetClassName(IEHandle, WWW, 255); Str=WWW; }while(Str!="IEFrame"); }while(IEHandle != NULL); } void __fastcall TForm1::ReFlashIE() { //取得IE Server的Handle GetHandle=GetWindow(IEHandle, GW_CHILD); for (int i=0; i<3; i ) { GetHandle=GetWindow(GetHandle, GW_HWNDNEXT); } GetHandle=GetWindow(GetHandle, GW_CHILD); PostMessage(GetHandle, WM_KEYDOWN, VK_F5, 0x3F0001); }
monjon
一般會員


發表:1
回覆:3
積分:0
註冊:2002-08-17

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-08-17 20:15:12 IP:61.225.xxx.xxx 未訂閱
jRowCount要宣告成int jTowCount;嗎?不用初始值嗎?
引言: 呵...還有...jRowCount..你也沒宣告唷...
引言: 忘了宣告IEHandle和GetHandle在我的.h檔 HWND IEHandle, GetHandle;
< >< > I like DeBug
天外來客
初階會員


發表:22
回覆:199
積分:44
註冊:2001-11-27

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-08-18 15:25:39 IP:210.85.xxx.xxx 未訂閱
你嘛幫幫忙! 原理就是對IE送一個F5 Key進去 別只會抄人家的code 如果直接貼過去就想complier成功 ----> 就說是給各位參考, 你也用點大腦, ok? 2000 server為什麼會當機? 啊哉 自己用VC 的SPY 之類的tool, 去看你有沒有抓對Handle 然後再對相對應的Handle送F5
系統時間:2024-04-19 17:28:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!