VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問如何擷取網頁的messagbox

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
richshih



註冊時間: 2007-10-11
文章: 153


第 1 樓

發表發表於: 星期二 三月 23, 2010 12:52 pm    文章主題: 請問如何擷取網頁的messagbox 引言回覆

使用物件 ox = CREATEOBJECT("InternetExplorer.Application")
訪問某個網頁後登錄後, 網頁會蹦出訊息視窗內含有一個號碼,很像VFP的messagebox()視窗, 請問如何擷取此物件和他的內含的文字訊息
回頂端
檢視會員個人資料 發送私人訊息
richshih



註冊時間: 2007-10-11
文章: 153


第 2 樓

發表發表於: 星期一 三月 29, 2010 5:07 pm    文章主題: 引言回覆

InternetExplorer.Application 物件高手都沒回應, 可能問的太籠統了
縮小範圍來問問, 請問 如果網頁蹦出一個訊息事窗 ,會觸發哪個事件?
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 3 樓

發表發表於: 星期二 三月 30, 2010 9:58 am    文章主題: 引言回覆

應該是攔不到~

不妨抓取網頁內容,然後找 alert( "" );
"" 內的文字就是訊息內容。

如果有很多個 alert()
你就要稍微判斷一下了。
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
richshih



註冊時間: 2007-10-11
文章: 153


第 4 樓

發表發表於: 星期二 三月 30, 2010 1:54 pm    文章主題: 引言回覆

elleryq 寫到:
應該是攔不到~

不妨抓取網頁內容,然後找 alert( "" );
"" 內的文字就是訊息內容。

如果有很多個 alert()
你就要稍微判斷一下了。

謝了
請問這和document.innertext or .innerhtml 有關嗎
回頂端
檢視會員個人資料 發送私人訊息
aizz



註冊時間: 2007-01-29
文章: 172


第 5 樓

發表發表於: 星期三 三月 31, 2010 1:12 pm    文章主題: Re: 請問如何擷取網頁的messagbox 引言回覆

richshih 寫到:
使用物件 ox = CREATEOBJECT("InternetExplorer.Application")
訪問某個網頁後登錄後, 網頁會蹦出訊息視窗內含有一個號碼,很像VFP的messagebox()視窗, 請問如何擷取此物件和他的內含的文字訊息


還不死心???


Razz
回頂端
檢視會員個人資料 發送私人訊息
215001



註冊時間: 2003-06-11
文章: 393


第 6 樓

發表發表於: 星期三 三月 31, 2010 4:02 pm    文章主題: 引言回覆

以下範例是:如何關閉 Outlook Express 每執行100次就會詢問是否要壓縮郵件
可以參考看看, IE 也可以用

LOCAL hwnd1,hwnd2,xstr

DECLARE INTEGER FindWindow IN WIN32API STRING cNull,STRING cWinName
DECLARE LONG FindWindowEx IN User32 LONG hWndParent, LONG hWndChild_Or_0123, STRING cClassName, STRING cCaptionText
DECLARE Integer SendMessage IN "user32" Integer, Integer, Integer, Integer
DECLARE LONG PostMessage IN User32 LONG hWnd, LONG uMsg, LONG wParam, LONG lParam
DECLARE INTEGER GetWindowText in Win32API integer, string @, integer

#DEFINE WM_CLOSE 0x0010

hWnd1 = findWindow(0 , "Outlook Express" ) && **** 此處輸入該視窗的標題 ***** , 有可能找到的是Outlook Express 主程式的 hWnd (或警告視窗 的 hwnd)

* 再確認該視窗標題是否有 "壓縮郵件" 的文字
hwnd2=0
DO WHILE hwnd1<>0
hwnd2 = FindWindowEx(hwnd1, hwnd2, 0, 0) && 找該視窗內hwnd2之下一個物件的hwnd (0從頭找)
if hwnd2 = 0
exit
endif

xstr=space(250)
=GetWindowText(hwnd2, @xstr, len(xstr)) && 取出該物件的 Caption (****** 可能就是你要的 *********)
xstr=UPPER(left(xstr, at(chr(0), xstr) - 1)) && 避開 chr(0)
IF "壓縮郵件"$xstr && 確定是此視窗
=SendMessage(hwnd1, WM_CLOSE, 0, 0) && 關閉此視窗
EXIT
ENDIF
ENDDO
回頂端
檢視會員個人資料 發送私人訊息
richshih



註冊時間: 2007-10-11
文章: 153


第 7 樓

發表發表於: 星期四 四月 01, 2010 1:56 pm    文章主題: 引言回覆

215001 寫到:
以下範例是:如何關閉 Outlook Express 每執行100次就會詢問是否要壓縮郵件
可以參考看看, IE 也可以用

LOCAL hwnd1,hwnd2,xstr

DECLARE INTEGER FindWindow IN WIN32API STRING cNull,STRING cWinName
DECLARE LONG FindWindowEx IN User32 LONG hWndParent, LONG hWndChild_Or_0123, STRING cClassName, STRING cCaptionText
DECLARE Integer SendMessage IN "user32" Integer, Integer, Integer, Integer
DECLARE LONG PostMessage IN User32 LONG hWnd, LONG uMsg, LONG wParam, LONG lParam
DECLARE INTEGER GetWindowText in Win32API integer, string @, integer

#DEFINE WM_CLOSE 0x0010

hWnd1 = findWindow(0 , "Outlook Express" ) && **** 此處輸入該視窗的標題 ***** , 有可能找到的是Outlook Express 主程式的 hWnd (或警告視窗 的 hwnd)

* 再確認該視窗標題是否有 "壓縮郵件" 的文字
hwnd2=0
DO WHILE hwnd1<>0
hwnd2 = FindWindowEx(hwnd1, hwnd2, 0, 0) && 找該視窗內hwnd2之下一個物件的hwnd (0從頭找)
if hwnd2 = 0
exit
endif

xstr=space(250)
=GetWindowText(hwnd2, @xstr, len(xstr)) && 取出該物件的 Caption (****** 可能就是你要的 *********)
xstr=UPPER(left(xstr, at(chr(0), xstr) - 1)) && 避開 chr(0)
IF "壓縮郵件"$xstr && 確定是此視窗
=SendMessage(hwnd1, WM_CLOSE, 0, 0) && 關閉此視窗
EXIT
ENDIF
ENDDO

215001 先進的意思 先抓取全部視窗 再由視窗的CAPTION來判斷?
回頂端
檢視會員個人資料 發送私人訊息
215001



註冊時間: 2003-06-11
文章: 393


第 8 樓

發表發表於: 星期四 四月 01, 2010 3:58 pm    文章主題: 引言回覆

1.先用FindWindow(0,"IE標題") 找到你要的視窗的hwnd
2.再用FindWindowEx()找到該視窗下的所有物件的hwnd
3.再用GetWindowText()去取出 caption
回頂端
檢視會員個人資料 發送私人訊息
mp484



註冊時間: 2006-08-08
文章: 84


第 9 樓

發表發表於: 星期五 四月 02, 2010 2:43 pm    文章主題: 引言回覆

使用215001兄的方法的確可以關掉Outlook Express壓縮視窗的提示,但新的問題來了!
雖然關掉了,可是會一直重複問(只是暫時關掉視窗,但會一直陰魂不散的再問),
是否可以用其他的命令「真正」關掉,告訴系統「賣擱問阿」!謝謝!
回頂端
檢視會員個人資料 發送私人訊息
215001



註冊時間: 2003-06-11
文章: 393


第 10 樓

發表發表於: 星期五 四月 02, 2010 4:56 pm    文章主題: 引言回覆

好像沒辦法真正關掉,網路上有其他方法,但需用 Regedit 去修改系統登錄檔

我是加入一個 Timer 處理 (一出現,就關掉)
回頂端
檢視會員個人資料 發送私人訊息
mp484



註冊時間: 2006-08-08
文章: 84


第 11 樓

發表發表於: 星期五 四月 02, 2010 7:32 pm    文章主題: 引言回覆

我也是用Timer去關掉,可是只能夠「暫時」關掉,沒多久又會繁人的問你要不要壓縮郵件!粉煩!
回頂端
檢視會員個人資料 發送私人訊息
mp484



註冊時間: 2006-08-08
文章: 84


第 12 樓

發表發表於: 星期五 四月 02, 2010 7:33 pm    文章主題: 引言回覆

我也是用Timer去關掉,可是只能夠「暫時」關掉,沒多久又會繁人的問你要不要壓縮郵件!粉煩!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作