Foxtable(狐表)用户栏目专家坐堂 → [求助]关于外部引用的问题


  共有5703人关注过本帖树形打印复制链接

主题:[求助]关于外部引用的问题

帅哥哟,离线,有人找我吗?
东方青石
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:690 威望:0 精华:0 注册:2014/4/8 8:31:00
[求助]关于外部引用的问题  发帖心情 Post By:2014/4/15 19:36:00 [只看该作者]

我想引用Wininet.dll 中的GetUrlCacheEntryInfo 和oleaut32.dll中的SysAllocString这连个API,请问我该如何操作啊?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/15 20:08:00 [只看该作者]

 如果你的这两个dll注册了,那直接定义下就能用了

 

 参考 http://www.foxtable.com/help/topics/1937.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
东方青石
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:690 威望:0 精华:0 注册:2014/4/8 8:31:00
  发帖心情 Post By:2014/4/15 20:55:00 [只看该作者]

Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" Alias "GetUrlCacheEntryInfoW" (ByVal szUrlName As Long, ByRef lpCacheEntryInfo As object, ByRef lpdwCacheEntryInfoBufferSize As Long) As Long
Declare Function SysAllocString Lib "oleaut32.dll" (ByVal pOlechar As Long) As String
Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As object, Source As object, ByVal Length As Long)

Structure   FILETIME 
Dim dwLowDateTime As Long
Dim dwHighDateTime As Long
End Structure   

Structure   INTE_CACHE_ENTRY_INFO
 Dim    dwStructSize As Long
 Dim    lpszSourceUrlName As Long
 Dim    lpszLocalFileName As Long
Dim     CacheEntryType As Long
 Dim    dwUseCount As Long
 Dim    dwHitRate As Long
 Dim    dwSizeLow As Long
 Dim    dwSizeHigh As Long
 Dim    LastModifiedTime As FILETIME
 Dim    ExpireTime As FILETIME
 Dim    LastAccessTime As FILETIME
  Dim   LastSyncTime As FILETIME
  Dim   lpHeaderInfo As Long
 Dim    dwHeaderInfoSize As Long
Dim     lpszFileExtension As Long
 Dim    dwReserved As Long
End Structure   
Public Function GetCachePath(byval lpszUrl As String) As String
    Dim dwEntrySize As Long
    Dim lpCacheEntry As INTE_CACHE_ENTRY_INFO
    Dim tarr() As Byte
 
    Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), ByVal 0, dwEntrySize)
    If dwEntrySize > 0 Then
        ReDim tarr(0 To dwEntrySize)
 
        Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), tarr(0), dwEntrySize)
        dim a
        
        a=CopyMem(ByVal lpCacheEntry, tarr(0), Len(lpCacheEntry))
        GetCachePath = SysAllocString(lpCacheEntry.lpszLocalFileName)
        GetCachePath = StrConv(GetCachePath,128)
    End If
End Function

我改后如上,但编译通不过,大概意思就是StrPtr(lpszUrl)这个了,将lpszurl转换成指针出错。。。有解决办法没有?
[此贴子已经被作者于2014-4-15 20:59:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/15 21:23:00 [只看该作者]

 试试这样改

 

Public Function GetCachePath(byRef lpszUrl As String) As String
    Dim dwEntrySize As Long
    Dim lpCacheEntry As INTE_CACHE_ENTRY_INFO
    Dim tarr() As Byte
 
    Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), ByVal 0, dwEntrySize)
    If dwEntrySize > 0 Then
        ReDim tarr(0 To dwEntrySize)
 
        Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), tarr(0), dwEntrySize)
        dim a
        
        a=CopyMem(ByVal lpCacheEntry, tarr(0), Len(lpCacheEntry))
        GetCachePath = SysAllocString(lpCacheEntry.lpszLocalFileName)
        GetCachePath = StrConv(GetCachePath,128)
    End If
End Function

 


 回到顶部
帅哥哟,离线,有人找我吗?
东方青石
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:690 威望:0 精华:0 注册:2014/4/8 8:31:00
  发帖心情 Post By:2014/4/15 22:01:00 [只看该作者]

很久没用VB了,都忘记了转换指针
Public Function GetCachePath(byref lpszUrl As String) As String
Dim lpCacheEntry As INTE_CACHE_ENTRY_INFO
MessageBox.show("正确调用3")
Dim tarr() As Byte
Call GetUrlCacheEntryInfo( lpszUrl,byval 0, dwEntrySize)
MessageBox.show ("第一步:" & dwEntrySize)
If dwEntrySize > 0 Then
    ReDim tarr(0 To dwEntrySize)
    Call GetUrlCacheEntryInfo(lpszUrl, tarr(0), dwEntrySize)
    call CopyMem ( lpCacheEntry, tarr(0), Len(lpCacheEntry))
    GetCachePath = SysAllocString(lpCacheEntry.lpszLocalFileName)
    GetCachePath = StrConv(GetCachePath, 128)
End If
End Function
Call GetUrlCacheEntryInfo( lpszUrl,byval 0, dwEntrySize)出了故障,但运行时不会提示错误。实际该API函数没有返回值,而是一直在运行。导致下面那个提示无法弹出,也无异常。。但是在狐表关闭时win系统会报狐表异常关闭
求大大帮我解决,,我是用来写一个提取验证码的东西。。。做个fa piao管理的小玩意,结果。。。。。
难道是我上面API函数引入时用的OBJECT类型不对?

 回到顶部
帅哥哟,离线,有人找我吗?
东方青石
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:690 威望:0 精华:0 注册:2014/4/8 8:31:00
  发帖心情 Post By:2014/4/15 22:08:00 [只看该作者]

白天用看了MSDN的webbrower方法属性什么的,用他的DrawToBitmap方法一直没办法截到图。总是空白一片,心都凉了。
晚上找了下网上的资料有用IE临时文件的方法,试了N久也一直不得门而入

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/15 22:13:00 [只看该作者]

 提取验证码?是什么意思?

 

 是类似网站注册时候生成的那个验证码吗?把这个图片保存下来?


 回到顶部
帅哥哟,离线,有人找我吗?
东方青石
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:690 威望:0 精华:0 注册:2014/4/8 8:31:00
  发帖心情 Post By:2014/4/15 22:17:00 [只看该作者]

对啊,或者截图下来也成

 回到顶部
帅哥哟,离线,有人找我吗?
东方青石
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:690 威望:0 精华:0 注册:2014/4/8 8:31:00
  发帖心情 Post By:2014/4/15 22:19:00 [只看该作者]

我想做成联网核对fa piao真假的一个东西,因为我们经常忘记收fa piao,我们公司也新规定我们收fa piao需要验证真伪的。。所以想做个这个东西。。

验证码还是手动输入

目前网页的页面交互除了按钮没做以外,其他都可以了,验证码卡到了
[此贴子已经被作者于2014-4-15 22:22:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/15 22:29:00 [只看该作者]

 回复9楼,这个简单。

 

 你查找到那个图片的节点,然后你获取它的scr属性,你就得到一个网址,你从这个网址下载图片就行了。

 

 参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=48864&skin=0

 


 回到顶部
总数 25 1 2 3 下一页