在vb上的webrowser上登录账号,无法换其他账号登陆,甚至点击登录无反应

phanphan 2018-12-17 10:45:42
如题。同一个网站,我先登录一个账号,登录成功后,然后点退出,但有时退不出,甚至页面没反应。即使退出成功,再登录其他账号,通常无法登陆,即使登录了,登录后却还是原来那个账号。请问是什么问题?该怎么解决?

注:并不是所有网站都如此,以前没遇到过,最近针对一个网站写程序时,遇到了上述问题。
...全文
202 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
phanphan 2019-03-23
  • 打赏
  • 举报
回复
@首都网吧管理员 谢谢版主,不好意思现在才结贴。试过了几种代码,您给的代码确实有效果。
crycoming 2019-01-15
  • 打赏
  • 举报
回复
webrowser要设置为兼容ie8模式,对最新的vbscript.dll ,jscript.dll支持可能有问题,需要对这两个dll文件注册一下
  • 打赏
  • 举报
回复
直接格式化C盘,安装2个不同的系统试下,WIN8 ,WIN10
王二.麻子 2019-01-07
  • 打赏
  • 举报
回复
必然是cookie问题
无·法 2018-12-20
  • 打赏
  • 举报
回复
每次新登录前都清空缓存试试。


Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_CLOSE = &H10
Private Const ERROR_CACHE_FIND_FAIL As Long = 0
Private Const ERROR_CACHE_FIND_SUCCESS As Long = 1
Private Const ERROR_FILE_NOT_FOUND As Long = 2
Private Const ERROR_ACCESS_DENIED As Long = 5
Private Const ERROR_INSUFFICIENT_BUFFER As Long = 122
Private Const MAX_PATH As Long = 260
Private Const MAX_CACHE_ENTRY_INFO_SIZE As Long = 4096

Private Const LMEM_FIXED As Long = &H0
Private Const LMEM_ZEROINIT As Long = &H40
Private Const LPTR As Long = (LMEM_FIXED Or LMEM_ZEROINIT)

Private Const NORMAL_CACHE_ENTRY As Long = &H1
Private Const EDITED_CACHE_ENTRY As Long = &H8
Private Const TRACK_OFFLINE_CACHE_ENTRY As Long = &H10
Private Const TRACK_ONLINE_CACHE_ENTRY As Long = &H20
Private Const STICKY_CACHE_ENTRY As Long = &H40
Private Const SPARSE_CACHE_ENTRY As Long = &H10000
Private Const COOKIE_CACHE_ENTRY As Long = &H100000
Private Const URLHISTORY_CACHE_ENTRY As Long = &H200000
Private Const URLCACHE_FIND_DEFAULT_FILTER As Long = NORMAL_CACHE_ENTRY Or _
COOKIE_CACHE_ENTRY Or _
URLHISTORY_CACHE_ENTRY Or _
TRACK_OFFLINE_CACHE_ENTRY Or _
TRACK_ONLINE_CACHE_ENTRY Or _
STICKY_CACHE_ENTRY
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type INTERNET_CACHE_ENTRY_INFO
dwStructSize As Long
lpszSourceUrlName As Long
lpszLocalFileName As Long
CacheEntryType As Long
dwUseCount As Long
dwHitRate As Long
dwSizeLow As Long
dwSizeHigh As Long
LastModifiedTime As FILETIME
ExpireTime As FILETIME
LastAccessTime As FILETIME
LastSyncTime As FILETIME
lpHeaderInfo As Long
dwHeaderInfoSize As Long
lpszFileExtension As Long
dwExemptDelta As Long
End Type

Private Declare Function FindFirstUrlCacheEntry Lib "wininet" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, lpFirstCacheEntryInfo As Any, lpdwFirstCacheEntryInfoBufferSize As Long) As Long
Private Declare Function FindNextUrlCacheEntry Lib "wininet" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, lpNextCacheEntryInfo As Any, lpdwNextCacheEntryInfoBufferSize As Long) As Long
Private Declare Function FindCloseUrlCache Lib "wininet" (ByVal hEnumHandle As Long) As Long
Private Declare Function DeleteUrlCacheEntry Lib "wininet" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal dwLength As Long)
Private Declare Function lstrcpyA Lib "kernel32" (ByVal RetVal As String, ByVal Ptr As Long) As Long
Private Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Long
Private Declare Function LocalAlloc Lib "kernel32" (ByVal uFlags As Long, ByVal uBytes As Long) As Long
Private Declare Function LocalFree Lib "kernel32" (ByVal hMem As Long) As Long

Public Sub DeleteCacheURLList()
Dim icei As INTERNET_CACHE_ENTRY_INFO
Dim hFile As Long
Dim cachefile As String
Dim posUrl As Long
Dim posEnd As Long
Dim dwBuffer As Long
Dim pntrICE As Long

hFile = FindFirstUrlCacheEntry(0&, ByVal 0, dwBuffer)

If (hFile = ERROR_CACHE_FIND_FAIL) And (Err.LastDllError = ERROR_INSUFFICIENT_BUFFER) Then

pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)

If pntrICE <> 0 Then
CopyMemory ByVal pntrICE, dwBuffer, 4

hFile = FindFirstUrlCacheEntry(vbNullString, ByVal pntrICE, dwBuffer)
If hFile <> ERROR_CACHE_FIND_FAIL Then
Do
CopyMemory icei, ByVal pntrICE, Len(icei)

If (icei.CacheEntryType And NORMAL_CACHE_ENTRY) = NORMAL_CACHE_ENTRY Then
cachefile = GetStrFromPtrA(icei.lpszSourceUrlName)
Call DeleteUrlCacheEntry(cachefile)
End If

Call LocalFree(pntrICE)

dwBuffer = 0
Call FindNextUrlCacheEntry(hFile, ByVal 0, dwBuffer)

'allocate and assign the memory to the pointer
pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)
CopyMemory ByVal pntrICE, dwBuffer, 4

DoEvents
Loop While FindNextUrlCacheEntry(hFile, ByVal pntrICE, dwBuffer)
End If 'hFile
End If 'pntrICE
End If 'hFile

Call LocalFree(pntrICE)
Call FindCloseUrlCache(hFile)
End Sub

Private Function GetStrFromPtrA(ByVal lpszA As Long) As String
GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
舉杯邀明月 2018-12-19
  • 打赏
  • 举报
回复
也许跟cookies有关吧……
你试试关闭程序后,在Internet选项中清除缓存和cookies,有没效果。

phanphan 2018-12-19
  • 打赏
  • 举报
回复
每一个人理睬,好无助啊
phanphan 2018-12-18
  • 打赏
  • 举报
回复
自己顶一下,大家帮帮忙
WeBrowser能够适应3G时代的移动办公,只要是有信号的地方就能够上网。对于已有WEB站的用户来说,无需重新建WAP站,只要在服务器端安装,然后进行简单设置就能实现。可以让用户很方便的浏览你的网站,查询相关信息。同时,它支持OA、ERP系统,更加方便了企业办公,使员工随时随地都能够处理手头工作,为企业节约了成本、提高了效率。 产品优势 1、零投资、零改造:企业无需花一分钱去购买设备,保持企业原网站、IT系统结构; 2、简单维护:WEB与WAP站数据库同时更新,无需单独维护; 3、灵活部署:产品可以安装在企业内部服务器也可托管运营; 4、低成本、高效率:企业只要很低的价格购买产品,安装完成,简单设置就能够拥有一个漂亮的WAP站; 5、免安装:用户无需在手机安装任何客户端及插件,并且兼容各类手机; 6、OA、ERP系统:适用所有OA、ERP等移动办公系统,实现随时随地办公,拥有一个装在兜里的办公室; 7、能力检测:能根据手机终端处理能力,动态调整输出策略,自动分页、压缩图片,节约用户流量、提升访问速度,达成最佳显示效果; 8、能力开放:转引擎公开API,集成商可以在此基础上进行二次开发满足各种需求; 9、SoC Ready:支持嵌入式系统移植,转网关可以作为通用器件灵活集成; 10、灵活、方便的广告位管理:渠道商、客户可以很方便地加载广告;

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧