VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 5070|回复: 10

[讨论] 远程读取网络txt文件?

[复制链接]
发表于 2013-2-26 19:22:35 | 显示全部楼层 |阅读模式
假如www.1.com/1.txt 的内容为
百度<>www.baidu.com
谷歌<>google.com

vb窗口有label1 和label2
请问如何label1显示“百度” 并且点击label1时打开百度网站
label2显示“谷歌” 并且点击label2时打开谷歌网站
发表于 2013-2-26 21:23:15 | 显示全部楼层
shellexecute 0, "open", "http://www.baidu.com",0 ,0, 1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-27 18:34:57 | 显示全部楼层
沧海冷心 发表于 2013-2-26 21:23
shellexecute 0, "open", "http://www.baidu.com",0 ,0, 1

不是打开网站 是读取网络上的txt 要用到split
回复 支持 反对

使用道具 举报

发表于 2013-3-26 10:38:58 | 显示全部楼层
给你个思路,第一步首先要判断网络是否正常,可用
  On Error Resume Next
    URLDownloadToFile 0, "http://www.vbgood.com/vucenter/images/noavatar_middle.gif", "c:\Isinter.gif", 0, 0 '下载检测文件
    If Len(Dir("c:\Isinter.gif")) > 0 Then '检测到文件存在,说明可以联网呢。
‘可以联网的代码
    Else
    End If

如果可以联网那么获取TXT文件,同样的方法。
读取txt文件到程序

然后就可以实现
回复 支持 反对

使用道具 举报

发表于 2013-3-26 10:43:19 | 显示全部楼层
mtvjie 发表于 2013-3-26 10:38
给你个思路,第一步首先要判断网络是否正常,可用
  On Error Resume Next
    URLDownloadToFile 0, "ht ...

千万不要用URLDownloadToFile 函数。。如果想被各种杀软轮死的话
回复 支持 反对

使用道具 举报

发表于 2013-3-26 10:46:14 | 显示全部楼层
最简单的办法:
1. http请求获得源码
2. INT控件
3. 读取Cookie

我写的TXT文件下载到本地的DLL,调用简单,见压缩包文本文件说明


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2013-3-26 10:57:17 | 显示全部楼层
huangshanvs 发表于 2013-3-26 10:46
最简单的办法:
1. http请求获得源码
2. INT控件

带个DLL多不好 开了吧!
回复 支持 反对

使用道具 举报

发表于 2013-3-26 10:59:57 | 显示全部楼层
mtvjie 发表于 2013-3-26 10:57
带个DLL多不好 开了吧!

  1. Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
  2. Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" ( ByVal hInternetSession As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
  3. Private Declare Function InternetReadFile Lib "wininet.dll" ( ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
  4. Private Declare Function InternetCloseHandle Lib "wininet.dll" ( ByVal hInet As Long) As Integer
  5. Public Function GetUrlFile(stUrl As String) As String
  6.     Dim lgInternet As Long, lgSession As Long
  7.     Dim stBuf As String * 1024
  8.     Dim inRes As Integer
  9.     Dim lgRet As Long
  10.     Dim stTotal As String
  11.     stTotal = vbNullString
  12.     lgSession = InternetOpen("VBTagEdit", 1, vbNullString, vbNullString, 0)
  13.     DoEvents
  14.     If lgSession Then
  15.         lgInternet = InternetOpenUrl(lgSession, stUrl, vbNullString, _
  16. 0, INTERNET_FLAG_NO_CACHE_WRITE, 0)
  17.         If lgInternet Then
  18.             Do
  19.                 inRes = InternetReadFile(lgInternet, stBuf, 1024, lgRet)
  20.                 stTotal = stTotal & StrConv(LeftB$(StrConv(stBuf, vbFromUnicode), lgRet), vbUnicode)
  21.             Loop While (lgRet <> 0)
  22.         End If
  23.         inRes = InternetCloseHandle(lgInternet)
  24.     End If
  25.     GetUrlFile = stTotal
  26. End Function
复制代码

评分

参与人数 1威望 +2 人气 +2 收起 理由
mtvjie + 2 + 2 赞一个

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2013-3-26 11:19:59 | 显示全部楼层
mtvjie 发表于 2013-3-26 10:38
给你个思路,第一步首先要判断网络是否正常,可用
  On Error Resume Next
    URLDownloadToFile 0, "ht ...

我之前也是这个办法
后来360、小红伞只要一生产文件就报毒
后来无限次尝试,发现此函数一旦使用就完了。。。

哪怕声明不调用也误报,去掉此函数问题马上解决
难道木马都喜欢这样?
回复 支持 反对

使用道具 举报

发表于 2013-3-26 12:07:13 | 显示全部楼层
huangshanvs 发表于 2013-3-26 11:19
我之前也是这个办法
后来360、小红伞只要一生产文件就报毒
后来无限次尝试,发现此函数一旦使用就完了。 ...

嗯,经常这样,后来我也用了一个新的下载控件,不过不知道是否支持其他系统,倒是什么杀毒都不会查出病毒。

我还有一个打乱VB程序的代码,应该可以杜绝这些问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-4 22:33

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表