討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團
[ 回上頁 ] [ 討論區發言規則 ]
怪!!!Inet.openURL無法用於Google搜尋網頁
更改我的閱讀文章字型大小
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/7/28 上午 12:07:08
不好意思,想請教一下各位,Inet.openURL "網址" 的傳回值是這網站的內容(原始碼),但是卻無法用於google"搜尋後"的網頁!如我在google打上某一關鍵字(如:車子),將其網址(如:http://www.google.com.tw/search?q=%A8%AE%A4l&ie=Big5&hl=zh-TW&lr=),用於inet.openURL,並利用中斷點仔細看,其傳回值竟是找不到網頁的錯誤訊息的原始碼(如:<html><head><title>404 Not Found</title><style>....)

ex:
Dim strFind As String
strFind = inet1.openURL "http://www.google.com.tw/search?q=%A 8AEA4l&ie=Big 5&hl=zh-TW&lr="
結果竟然strFind="html><head><title>404 Not Found</title><style>....",也就是當google在其網址後(www.google.com/@#$@$)打錯的網頁:如(http://www.google.com/asdfadfajbe)的原始碼,還麻煩請前輩指導一下,到底要如何取得搜尋後的網頁
作者 : isaiah1(Kevin) 貼文超過200則
[ 貼文 234 | 人氣 7647 | 評價 1040 | 評價/貼文 4.44 | 送出評價 23 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/7/28 下午 12:03:05
呵呵,叔叔剛好有練過 :

WebBrowser1.Navigate "www.google.com"

With WebBrowser1.Document.Forms(0)
    .elements("q").Value = "查詢字串"
    .submit
End With

TextBox1.Text = Web1.Document.body.innerHTML
作者 : timmyguo(tt''s) Visual Basic優秀好手ASP卓越專家貼文超過1000則
[ 貼文 1247 | 人氣 6140 | 評價 4260 | 評價/貼文 3.42 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/7/29 下午 01:28:58
這個問題的由來是Google的程式有去判斷
HTTP Server Variables 的 HTTP_USER_AGENT,
它不讓使用者用程式去搜尋.
而用WebBrowser的方式則是經過了IE去處理,騙過了Google的程式
(它的HTTP_USER_AGENT就是IE的HTTP_USER_AGENT)
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/7/29 下午 02:53:47
嗯...inet就是會很雞婆的告訴遠端,使用者用啥東西下載,偏偏又不能自己編輯。
inet是簡單易用,但受限很多,用WINSOCK就不受這限制了。
其實看你的用途選擇,若你只想要原始碼,用WINSOCK也行,只需送
Get /search?q=%A8AEA4l&ie=Big5&hl=zh-TW&lr= HTTP/1.1
圖文加原始碼就用WebBrowser
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/7/31 上午 10:13:00
感謝上面的高手幫忙指導!!
那我可不可以請問一下面程式碼的意義是什麼,雖然大概看的懂,但是還是說不出個所以然,麻煩各位指導,謝謝..

>WebBrowser1.Navigate 'www.google.com'
>
>With WebBrowser1.Document.Forms(0)
> .elements('q').Value = '查詢字串'
> .submit
>End With
>
>TextBox1.Text = Web1.Document.body.innerHTML
作者 : isaiah1(Kevin) 貼文超過200則
[ 貼文 234 | 人氣 7647 | 評價 1040 | 評價/貼文 4.44 | 送出評價 23 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/2 下午 01:18:03
使用一個WebBrowser元件,一個TextBox元件,二個CommandButton
Command1_Click()是與Google建立Connection, 當你看到Google 的首頁產生後,
再按下 CommandButton2, 它的動作就是在 Google 的首頁查詢欄位 (ID name = "q", 你按滑鼠右鍵看Google首頁的Source code便知) 輸入你要的查詢字串後, 模擬 Submit 的動作 (通常是用於VB執行自動登入網頁的動作啦,不要拿來做壞事...).

當WebBrowser讀進網頁後, 可用其Document 屬性分析 Html Source Codes...
例如寫一迴圈取其所有的<A>...</A>標籤, 再用INet 一個個讀進來...就好像Teleport砍站軟體...

Private Sub Command1_Click()
     WebBrowser1.Nagivate "www.google.com"
End Sub

Private Sub Command2_Click()
   With WebBrowser1.Document.Forms(0)
     .elements("q").Value = "查詢的條件"
     .submit
   End With

   TextBox1.Text = WebBrowser1.Document.body.innerHTML
End Sub
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/2 下午 02:45:49
感謝回應!!!不好意思,沒說清楚哪裡不懂,害你介紹的那麼多,我的問題在下..
------------------------------------------------------------------------
Private Sub Command2_Click()
> With WebBrowser1.Document.Forms(0).........Form(0)是什麼意思
> .elements('q').Value = '查詢的條件'..............elements()是什麼意思
> .submit....................................................submitg是什麼意思
> End With
>
> TextBox1.Text=WebBrowser1.Document.body.innerHTML... ...body.innerHTML是什麼意思
>End Sub
-------------------------------------------------------------------------
另外我想請問你一下,在這些語法中,書中並沒有介紹,那你是如何學習的?可不可以告知,那以後便可以自己學習了,感激不盡
作者 : isaiah1(Kevin) 貼文超過200則
[ 貼文 234 | 人氣 7647 | 評價 1040 | 評價/貼文 4.44 | 送出評價 23 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/2 下午 04:11:52
都是用 Google 搜尋來的,平常也有整理筆記的習慣, 否則網站那麼多, 有時又不明原因關站,
只好靠自己!

建議您有空的話請看 http://pub13.ezboard.com/bvisualbasicexplorer 網站的第六項 "Internet, VBScript, HTML" .如果你看完一次,Internet 方面的VB應用程式應該是難不倒你的.有時, 我覺得會套用就好...不用太鑽研, 國內VB的書都是給入門的學生看的, 有需要加強的部分再上網路找找即可
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/2 下午 04:35:19
了解了, 感謝你的指導!!!
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/9 下午 12:30:25
剛剛在用這功能時,突然發現你給我程式碼的功能是取得Google打上搜尋字,尚未按下搜循的原始碼,而我要的是按下搜循後,其搜尋結果的原始碼,那有辦法嗎?還麻煩指導一下



>呵呵,叔叔剛好有練過 :
>
>WebBrowser1.Navigate 'www.google.com'
>
>With WebBrowser1.Document.Forms(0)
> .elements('q').Value = '查詢字串'
> .submit
>End With
>
>TextBox1.Text = Web1.Document.body.innerHTML
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/9 下午 09:41:40
利用你講的winsock方法,去取得Google搜尋後的原始法 ,我試了卻不行, 不知你是否可以看一下我哪裡出錯嘛?
______________________________________________________________
假設Google搜尋後的網址是(http://www.google.com.tw/search?q=%A4%F4%AAG&ie=Big5&hl=zh-TW&meta=)

winsock1.LocalPort=80
winsock1.RemoteHost="http://www.google.com.tw"
winsock1.RemotePort=80
winsock1.Connect
winsock1.sentData "search?q=%A4%F4%AAG&ie=Big5&hl=zh-TW&meta=HTTP/1.1"

不知為什麼就是等不到Google送資料來(一直沒啟動DataArrival事件),不知是哪裡出了問題還麻煩各位指導一下






>嗯...inet就是會很雞婆的告訴遠端,使用者用啥東西下載,偏偏又不能自己編輯。
>inet是簡單易用,但受限很多,用WINSOCK就不受這限制了。
>其實看你的用途選擇,若你只想要原始碼,用WINSOCK也行,只需送
>Get /search?q=%A8AEA4l&ie=Big5&hl=zh-TW&lr= HTTP/1.1
>圖文加原始碼就用WebBrowser
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/9 下午 10:57:15
秀一段給你看一下,阿伯也有練過^^"
Option Explicit
Private Sub Command1_Click()
Text1.Text = ""
With Winsock1
    .Close
    .RemoteHost = "www.google.com.tw"
    .RemotePort = 80
    .Connect
End With
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
End Sub
Private Sub Winsock1_Connect()
Dim a As String
a = "GET /search?hl=zh-TW&q=台灣+No.1&btnG=%E6%90%9C%E5%B0%8B&meta=lr%3Dlang_zh-CN%7Clang_zh-TW HTTP/1.1" & vbCrLf
Winsock1.SendData (a & vbCrLf)
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Res As String
Winsock1.GetData Res
Text1.Text = Text1.Text & Res & vbCrLf
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Winsock1.Close
End Sub
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/9 下午 11:30:27
感謝你的回覆!!( 天阿怎麼每個人都有練過^^"),大致上都看的懂,只是一些地方想請教一下_______________________________________________________________
1.為麼要加上& vbCrLf, 不加會怎樣嘛 ? 還有為什麼要加兩次
2. (search?hl=zh-TW&q=台灣+No.1&btnG=%E6%90%9C%E5%B0%8B&meta=lr%3Dlang_zh-CN%7Clang_zh-TW HTTP/1.1' )這個部分網址,我想你是否是查<台灣 & NO.1>,為什我跟你查一樣,台灣變成'%A5x%C6W'這樣呢 ?
3.還麻煩你指導一下



>秀一段給你看一下,阿伯也有練過^^'
>Option Explicit
>Private Sub Command1_Click()
>Text1.Text = '
>With Winsock1
> .Close
> .RemoteHost = 'www.google.com.tw'
> .RemotePort = 80
> .Connect
>End With
>End Sub
>Private Sub Winsock1_Close()
>Winsock1.Close
>End Sub
>Private Sub Winsock1_Connect()
>Dim a As String
>a = 'GET /search?hl=zh-TW&q=台灣+No.1&btnG=%E6%90%9C%E5%B0%8B&meta=lr%3Dlang_zh-CN%7Clang_zh-TW HTTP/1.1' & vbCrLf
>Winsock1.SendData (a & vbCrLf)
>End Sub
>Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
>Dim Res As String
>Winsock1.GetData Res
>Text1.Text = Text1.Text & Res & vbCrLf
>End Sub
>Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
>Winsock1.Close
>End Sub
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/10 上午 12:09:42
1.不加兩組CrLf,伺服器不會處理你傳的字串,不然你扣掉一組試試看。
詳情就須參考RFC文件(HTTP 1.1 協議)。
2.我是查台灣 No.1,查詢結果一樣的關鍵在於參數"ie"(網址間),
有些瀏覽器是ie=UTP-8。其實第二個問題,題意看不太懂,希望沒會錯意。
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/10 上午 09:13:33
大致上懂了,非常感謝你的回覆,若是還有問題的話我會在po上來 ,那時記得還要幫我看一下^^
ps.(希望有一天也可以像你一樣對網路程式設計這麼強)


>1.不加兩組CrLf,伺服器不會處理你傳的字串,不然你扣掉一組試試看。
>詳情就須參考RFC文件(HTTP 1.1 協議)。
>2.我是查台灣 No.1,查詢結果一樣的關鍵在於參數'ie'(網址間),
>有些瀏覽器是ie=UTP-8。其實第二個問題,題意看不太懂,希望沒會錯意。
作者 : isaiah1(Kevin) 貼文超過200則
[ 貼文 234 | 人氣 7647 | 評價 1040 | 評價/貼文 4.44 | 送出評價 23 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/10 上午 09:37:20
如果要寫網際網路程式 , 研究 WinSock 元件應該是正途...好像其他相關網路元件的動作它都做的到, 我的再重來一次 :
Step 1 : 在Form上放置WebBrowser、TextBox 各一, CommandButton 三個
Step2 : 相關程式碼:

Private Sub Cmmand1_Click()
   WebBrowser1.Navigate "www.google.com"
End Sub

Private Sub Cmmand2_Click()
   With WebBrowser1.Document.Forms(0)
    .elements("q").Value = "查詢字串" '查詢字串請改成你的
    .submit
   End With
End Sub

Private Sub Cmmand3_Click()
   TextBox1.Text = WebBrowser1.Document.body.innerHTML
End Sub

Step3 : 執行過程按下Command1,等到Google網頁完全讀進後,
     按下Command2,再等Google網頁再次讀進後,
     按下Command3,此時TextBox1.text應該就是你要的東西

解說:如果你將上述三段程式寫在一起一塊執行, VB是一列一列快速地執行下去,不到一秒
     即執行完畢. 如果Google的 Server五秒鐘才回應你, 你說執行後面幾列的程式碼有
     意義嗎 ?
     其中後幾列必須等待"程式外的環境(如資料庫)"回應, 才接著執行.如果不是用人手動
     依序按下Command1、Command2、Command3,而是由程式自行判斷自動執行,
     這時Timer元件就派上用場了,你還必須判定網頁存在否 ? 讀取狀態 ? 再決定程式如何
     繼續執行下去....
    
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/10 上午 09:46:18
感謝你寫的那麼仔細(感動中.....),這幾個方法我都會試試看的!!
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/10 下午 03:39:38
To BK.
小弟這方面不強,只是略懂罷了,現也是在學習中。
如果有時間+有能力的話,給意見是沒問題^_^。

補充:WebBrowser下載網頁後,會觸發DocumentComplete事件,
如果加上旗標做記號的話,應可以不必用到Timer,看情形啦。
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/10 下午 06:47:19
總算可以了!!,因為我要等Google把原始碼"全部"傳送完後,再把接收到的原始碼傳送給另一副程式,那要如何知道Google傳送的原始碼已送完了,下面是我想的方法但是不行
---------------------------------------------------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  Dim Res As String
  Dim a as String
  Winsock1.GetData Res
  a = a & Res & vbCrLf
  if Instr(1,a,"/html") <> 0 then 把a傳送給某一副程式
End Sub

由於Google可能把原始碼切成好幾個封包 ,而每一封包到達的順序不一樣,所以a的值每次都不一樣,那有辦法知道google已把全部的原始碼傳送完畢嗎







>秀一段給你看一下,阿伯也有練過^^'
>Option Explicit
>Private Sub Command1_Click()
>Text1.Text = '
>With Winsock1
> .Close
> .RemoteHost = 'www.google.com.tw'
> .RemotePort = 80
> .Connect
>End With
>End Sub
>Private Sub Winsock1_Close()
>Winsock1.Close
>End Sub
>Private Sub Winsock1_Connect()
>Dim a As String
>a = 'GET /search?hl=zh-TW&q=台灣+No.1&btnG=%E6%90%9C%E5%B0%8B&meta=lr%3Dlang_zh-CN%7Clang_zh-TW HTTP/1.1' & vbCrLf
>Winsock1.SendData (a & vbCrLf)
>End Sub
>Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
>Dim Res As String
>Winsock1.GetData Res
>Text1.Text = Text1.Text & Res & vbCrLf
>End Sub
>Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
>Winsock1.Close
>End Sub
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/10 下午 07:02:22
當GOOGLE傳送完之後會和你斷線,那將使你觸發"Winsock1_Close()"。
關於你的片段,可行性超低。因為下載過程中,會不斷的觸發Winsock1_DataArrival。
你的a將會被洗掉,做外部宣告吧!且不用a = a & Res & vbCrLf,直接a = a & Res,
當時是為了TEXTBOX的關係才加VBCRLF的。
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/10 下午 08:05:54
好像不會發生發Winsock1_Close()事件?


>當GOOGLE傳送完之後會和你斷線,那將使你觸發'Winsock1_Close()'。
>關於你的片段,可行性超低。因為下載過程中,會不斷的觸發Winsock1_DataArrival。
>你的a將會被洗掉,做外部宣告吧!且不用a = a & Res & vbCrLf,直接a = a & Res,
>當時是為了TEXTBOX的關係才加VBCRLF的。
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/10 下午 08:45:08
嗯...因為我沒把HTTP協議的部分完整的寫出,加上這才可行。想知詳情還是RFC文件。
不用再給評價了^^"。把a改成以下
a = "GET /search?hl=zh-TW&ie=big5&q=台灣+No.1&btnG=%E6%90%9C%E5%B0%8B&meta=lr%3Dlang_zh-CN%7Clang_zh-TW HTTP/1.1" & vbCrLf & _
    "Connection: close" & vbCrLf
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/15 下午 07:59:50
上次你寫的,真的行的通!!但是當我輸入的問題是Google查不到的,它就不會主動跟我斷線,由於我的程式是連續性的,當按下連結按鈕,就會把此按鈕鎖定,直到Google跟我斷線,假使使用者輸入了Google查不到的問題(如:adfadfjeere),它也不會跟我斷線,所以按鈕就一直是鎖定的,那我想請教一下,不知有沒有可以當傳一個當Google查不到的問題,Google也會傳一個查不到的訊息或者是主動跟我斷線呢?




>嗯...因為我沒把HTTP協議的部分完整的寫出,加上這才可行。想知詳情還是RFC文件。
>不用再給評價了^^'。把a改成以下
>a = 'GET /search?hl=zh-TW&ie=big5&q=台灣+No.1&btnG=%E6%90%9C%E5%B0%8B&meta=lr%3Dlang_zh-CN%7Clang_zh-TW HTTP/1.1' & vbCrLf & _
> 'Connection: close' & vbCrLf
作者 : super0012(super0012)
[ 貼文 93 | 人氣 920 | 評價 680 | 評價/貼文 7.31 | 送出評價 58 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人loveorc2003註記此篇回應為最佳解答 2004/8/15 下午 10:58:39
就算查不到也會斷線阿。把上面的程式碼單純地測試看看。
"解除按鈕鎖定"利用Winsock1_Close觸發會比較正確。
作者 : loveorc2003(BK.) Visual Basic優秀好手新手入門優秀好手一般優秀好手貼文超過1000則人氣指數超過200000點
[ 貼文 1381 | 人氣 206151 | 評價 2670 | 評價/貼文 1.93 | 送出評價 712 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/16 下午 08:54:29
真的是這樣!又解決了,謝了^^


>就算查不到也會斷線阿。把上面的程式碼單純地測試看看。
>'解除按鈕鎖定'利用Winsock1_Close觸發會比較正確。
作者 : motsida(獅子)
[ 貼文 50 | 人氣 5343 | 評價 40 | 評價/貼文 0.8 | 送出評價 8 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/11/19 下午 05:22:42
在這邊想請問一下,我也是用HTTP1.1寫一個網路下載程式,我是會去連續下載很多檔案,
但是每次下載完第一個檔案recv接收完後就自動斷線,我有問一下架Server那邊,他說他那
邊設定為KeepAliveOn,意思應該是他那邊永遠不會自動斷線吧...HTTP下載都會這樣是嘛?
 板主 : 小樓
 > Visual Basic 6.0/VBA - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Visual Basic 6.0/VBA - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Visual Basic 6.0/VBA
1 阿戊 10670 
2 小樓 8650 
3 Jones 5270 
4 水瓶天賞 2340 
5 joe 2230 
6 史努比 1950 
7 阿呆紅 1440 
8 tt's 1250 
9 青衫 1150 
10 羅啟章 1020 
Visual Basic 6.0/VBA
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.203125