webview2的说明或者说是代码的说明
Public webViewList As New List(Of WebView2)() '打开的浏览器放到list中
Private ReadOnly linkList As New List(Of LinkInfo)() '这里是链接的list
Private ReadOnly blackLinkList As New List(Of LinkInfo)()
Private ReadOnly LinksFilePath As String = Path.Combine(Application.StartupPath, "links.txt")
Private ReadOnly BlackLinksFilePath As String = Path.Combine(Application.StartupPath, "black_links.txt")
Private ReadOnly DownloadFolderPath As String = Path.Combine(Application.StartupPath, "Download")
Private WithEvents ToolStrip As ToolStrip
Dim startPoint As Point
Dim endPoint As Point
Dim selecting As Boolean = False
Dim screenshotBitmap As Bitmap '
Private marginRight As Integer
Public cut_screen As Boolean = True '是不是可以截图
Dim connectionString As String = "Data Source =" + Environment.CurrentDirectory + "/web.db" 'Sqlite的链接
web.db 放在VBWinFormsApp\bin\Debug\net8.0-windows 中 。同时也有menu.js 其中 Download为下载的目录,pic为截图存方的目 录。
toolstrip的 ToolStripButton的设置
ToolStrip1.ImageScalingSize = New Size(20, 20)
ToolStrip1.Items.AddRange(New ToolStripItem() {ToolStripButtonpre, ToolStripButtonnext, ToolStripButtonrefresh, ToolStripButtonHome, ToolStripButtondev, ToolStripButtonclear, ToolStripButtonHis, ToolStripButtonadd, ToolStripTextBoxUrl, ToolStripComboBox1, ToolStripButtondrop, ToolStripButtonSearch, ToolStripButtonstar, ToolStripButtonclose, ToolStripButtonuser, ToolStripButtonpass, ToolStripButtonmanage, ToolStripButtonCut, ToolStripButtonpicList, ToolStripButtonHelp})
ToolStrip1.Location = New Point(0, 0)
ToolStrip1.Name = "ToolStrip1"
ToolStrip1.Padding = New Padding(0)
ToolStrip1.Size = New Size(1363, 27)
ToolStrip1.Stretch = True
ToolStrip1.TabIndex = 0
ToolStrip1.Text = "ToolStrip1"
'
' ToolStripButtonpre
'
ToolStripButtonpre.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonpre.Image = My.Resources.Resources.arrow_left_bold
ToolStripButtonpre.ImageTransparentColor = Color.Magenta
ToolStripButtonpre.Name = "ToolStripButtonpre"
ToolStripButtonpre.Size = New Size(24, 24)
ToolStripButtonpre.Tag = "pre"
ToolStripButtonpre.Text = "前"
'
' ToolStripButtonnext
'
ToolStripButtonnext.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonnext.Image = My.Resources.Resources.arrow_right_bold
ToolStripButtonnext.ImageTransparentColor = Color.Magenta
ToolStripButtonnext.Name = "ToolStripButtonnext"
ToolStripButtonnext.Size = New Size(24, 24)
ToolStripButtonnext.Tag = "next"
ToolStripButtonnext.Text = "下一个"
'
' ToolStripButtonrefresh
'
ToolStripButtonrefresh.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonrefresh.Image = My.Resources.Resources.刷新
ToolStripButtonrefresh.ImageTransparentColor = Color.Magenta
ToolStripButtonrefresh.Name = "ToolStripButtonrefresh"
ToolStripButtonrefresh.Size = New Size(24, 24)
ToolStripButtonrefresh.Tag = "refresh"
ToolStripButtonrefresh.Text = "刷新"
'
' ToolStripButtonHome
'
ToolStripButtonHome.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonHome.Image = My.Resources.Resources.首页
ToolStripButtonHome.ImageTransparentColor = Color.Magenta
ToolStripButtonHome.Name = "ToolStripButtonHome"
ToolStripButtonHome.Size = New Size(24, 24)
ToolStripButtonHome.Tag = "home"
ToolStripButtonHome.Text = "首页"
'
' ToolStripButtondev
'
ToolStripButtondev.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtondev.Image = My.Resources.Resources.测试
ToolStripButtondev.ImageTransparentColor = Color.Magenta
ToolStripButtondev.Name = "ToolStripButtondev"
ToolStripButtondev.Size = New Size(24, 24)
ToolStripButtondev.Tag = "dev"
ToolStripButtondev.Text = "开发"
'
' ToolStripButtonclear
'
ToolStripButtonclear.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonclear.Image = My.Resources.Resources.失败
ToolStripButtonclear.ImageTransparentColor = Color.Magenta
ToolStripButtonclear.Name = "ToolStripButtonclear"
ToolStripButtonclear.Size = New Size(24, 24)
ToolStripButtonclear.Tag = "clear"
ToolStripButtonclear.Text = "清除"
'
' ToolStripButtonHis
'
ToolStripButtonHis.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonHis.Image = CType(resources.GetObject("ToolStripButtonHis.Image"), Image)
ToolStripButtonHis.ImageTransparentColor = Color.Magenta
ToolStripButtonHis.Name = "ToolStripButtonHis"
ToolStripButtonHis.Size = New Size(24, 24)
ToolStripButtonHis.Tag = "history"
ToolStripButtonHis.Text = "历史"
'
' ToolStripButtonadd
'
ToolStripButtonadd.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonadd.Image = My.Resources.Resources.增加
ToolStripButtonadd.ImageTransparentColor = Color.Magenta
ToolStripButtonadd.Name = "ToolStripButtonadd"
ToolStripButtonadd.Size = New Size(24, 24)
ToolStripButtonadd.Tag = "add"
ToolStripButtonadd.Text = "增加"
'
' ToolStripTextBoxUrl
'
ToolStripTextBoxUrl.BorderStyle = BorderStyle.FixedSingle
ToolStripTextBoxUrl.Name = "ToolStripTextBoxUrl"
ToolStripTextBoxUrl.Size = New Size(812, 27)
ToolStripTextBoxUrl.Tag = "search"
'
' ToolStripComboBox1
'
ToolStripComboBox1.Name = "ToolStripComboBox1"
ToolStripComboBox1.Size = New Size(75, 27)
ToolStripComboBox1.Visible = False
'
' ToolStripButtondrop
'
ToolStripButtondrop.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtondrop.Image = CType(resources.GetObject("ToolStripButtondrop.Image"), Image)
ToolStripButtondrop.ImageTransparentColor = Color.Magenta
ToolStripButtondrop.Name = "ToolStripButtondrop"
ToolStripButtondrop.Size = New Size(24, 24)
ToolStripButtondrop.Tag = "droplist"
ToolStripButtondrop.Text = "下拉"
ToolStripButtondrop.ToolTipText = "下拉"
'
' ToolStripButtonSearch
'
ToolStripButtonSearch.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonSearch.Image = CType(resources.GetObject("ToolStripButtonSearch.Image"), Image)
ToolStripButtonSearch.ImageTransparentColor = Color.Magenta
ToolStripButtonSearch.Name = "ToolStripButtonSearch"
ToolStripButtonSearch.Size = New Size(24, 24)
ToolStripButtonSearch.Tag = "search"
ToolStripButtonSearch.Text = "查询"
'
' ToolStripButtonstar
'
ToolStripButtonstar.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonstar.Image = My.Resources.Resources.收藏
ToolStripButtonstar.ImageTransparentColor = Color.Magenta
ToolStripButtonstar.Name = "ToolStripButtonstar"
ToolStripButtonstar.Size = New Size(24, 24)
ToolStripButtonstar.Tag = "star"
ToolStripButtonstar.Text = "收藏"
'
' ToolStripButtonclose
'
ToolStripButtonclose.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonclose.Image = My.Resources.Resources.close
ToolStripButtonclose.ImageTransparentColor = Color.Magenta
ToolStripButtonclose.Name = "ToolStripButtonclose"
ToolStripButtonclose.Size = New Size(24, 24)
ToolStripButtonclose.Tag = "close"
ToolStripButtonclose.Text = "关闭"
'
' ToolStripButtonuser
'
ToolStripButtonuser.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonuser.Image = My.Resources.Resources.头像
ToolStripButtonuser.ImageTransparentColor = Color.Magenta
ToolStripButtonuser.Name = "ToolStripButtonuser"
ToolStripButtonuser.Size = New Size(24, 24)
ToolStripButtonuser.Tag = "user"
ToolStripButtonuser.Text = "我的"
'
' ToolStripButtonpass
'
ToolStripButtonpass.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonpass.Enabled = False
ToolStripButtonpass.Image = My.Resources.Resources.edit
ToolStripButtonpass.ImageTransparentColor = Color.Magenta
ToolStripButtonpass.Name = "ToolStripButtonpass"
ToolStripButtonpass.Size = New Size(24, 24)
ToolStripButtonpass.Text = "修改密码"
'
' ToolStripButtonmanage
'
ToolStripButtonmanage.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonmanage.Enabled = False
ToolStripButtonmanage.Image = My.Resources.Resources.file_common
ToolStripButtonmanage.ImageTransparentColor = Color.Magenta
ToolStripButtonmanage.Name = "ToolStripButtonmanage"
ToolStripButtonmanage.Size = New Size(24, 24)
ToolStripButtonmanage.Tag = "manage"
ToolStripButtonmanage.Text = "管理"
'
' ToolStripButtonCut
'
ToolStripButtonCut.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonCut.Enabled = False
ToolStripButtonCut.Image = CType(resources.GetObject("ToolStripButtonCut.Image"), Image)
ToolStripButtonCut.ImageTransparentColor = Color.Magenta
ToolStripButtonCut.Name = "ToolStripButtonCut"
ToolStripButtonCut.Size = New Size(24, 24)
ToolStripButtonCut.Tag = "cut"
ToolStripButtonCut.Text = "截取"
'
' ToolStripButtonpicList
'
ToolStripButtonpicList.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonpicList.Enabled = False
ToolStripButtonpicList.Image = CType(resources.GetObject("ToolStripButtonpicList.Image"), Image)
ToolStripButtonpicList.ImageTransparentColor = Color.Magenta
ToolStripButtonpicList.Name = "ToolStripButtonpicList"
ToolStripButtonpicList.Size = New Size(24, 24)
ToolStripButtonpicList.Tag = "pics"
ToolStripButtonpicList.Text = "图片例表"
'
' ToolStripButtonHelp
'
ToolStripButtonHelp.DisplayStyle = ToolStripItemDisplayStyle.Image
ToolStripButtonHelp.Image = CType(resources.GetObject("ToolStripButtonHelp.Image"), Image)
ToolStripButtonHelp.ImageTransparentColor = Color.Magenta
ToolStripButtonHelp.Name = "ToolStripButtonHelp"
ToolStripButtonHelp.Size = New Size(24, 24)
ToolStripButtonHelp.Tag = "help"
ToolStripButtonHelp.Text = "帮助"
在ToolStrip1_ItemClicked中用select case 去写逻辑
Private Async Sub ToolStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
Dim webView = GetActiveWebView()
Try
If webView IsNot Nothing Then
If webView.CoreWebView2 Is Nothing Then
Await webView.EnsureCoreWebView2Async()
End If
Else
' 处理 webView 为 Nothing 的情况,可以在这里添加适当的日志记录或其他错误处理逻辑
Console.WriteLine("webView is Nothing.")
End If
Catch ex As Exception
' 处理异常,可以在这里添加适当的日志记录或其他错误处理逻辑
Console.WriteLine($"An error occurred: {ex.Message}")
End Try
Select Case TryCast(e.ClickedItem.Tag, String)
Case "search" '搜索
Try
Dim url = ToolStripTextBoxUrl.Text
Debug.WriteLine($"url:{url}")
webView.Source = New Uri(url)
Catch ex As Exception
Try
ToolStripTextBoxUrl.Text = "https://" & ToolStripTextBoxUrl.Text
webView.Source = New Uri(ToolStripTextBoxUrl.Text)
Catch
End Try
End Try
Case "pre"
webView.GoBack()
Case "next"
webView.GoForward()
Case "dev"
webView.CoreWebView2.OpenDevToolsWindow()
Case "refresh"
webView.CoreWebView2.Reload()
Case "close"
Dim index = TabControl1.SelectedIndex
If index <> 0 Then
Try
TabControl1.SelectedIndex = index - 1
TabControl1.TabPages.RemoveAt(index)
webViewList.RemoveAt(index - 1)
webView.Dispose()
Catch ex As Exception
End Try
End If
Case "clear"
If MessageBox.Show("清除所有历史记录?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
Await webView.CoreWebView2.Profile.ClearBrowsingDataAsync()
webView.CoreWebView2.Profile.CookieManager.DeleteAllCookies()
End If
Case "history" '历史,改用下载记录代替
webView.CoreWebView2.OpenDefaultDownloadDialog()
Case "add" '打开新的窗口
LoadEmptyUri()
Case "star"
If ToolStripButtonstar.ImageIndex = -1 Or ToolStripButtonstar.ImageIndex = 11 Then
' 清理标题字符串,然后将其分配给 customLinkInfo.Title
Dim cleanedTitle As String = webView.CoreWebView2.DocumentTitle.Trim()
For Each ch As Char In cleanedTitle
Debug.Write(ch)
Next
Dim customLinkInfo As New LinkInfo(ToolStripTextBoxUrl.Text, cleanedTitle)
Debug.WriteLine(customLinkInfo.link)
Debug.WriteLine(customLinkInfo.title)
linkList.Add(customLinkInfo)
ToolStripButtonstar.ImageIndex = 12
Else
Dim index = linkList.FindIndex(Function(item) item.link = ToolStripTextBoxUrl.Text)
Debug.WriteLine(index)
If index >= 0 Then
linkList.RemoveAt(index)
ToolStripButtonstar.ImageIndex = 11
End If
End If
updateLinkList()
Case "home"
LoadUri(TryCast(LinkLabel1.Tag, String))
Case "user"
Dim childForm As New FormLogin(Me)
childForm.ShowDialog()
Dim returnedValue As String = childForm.ReturnValue
If returnedValue IsNot Nothing Then
' 在这里处理返回的值
' MessageBox.Show(returnedValue, "返回的值")
ToolStripButtonuser.Tag = "quit"
ToolStripButtonpass.Enabled = True
ToolStripButtonpass.Tag = "pass"
ToolStripButtonmanage.Enabled = True
ToolStripButtonCut.Enabled = True
ToolStripButtonpicList.Enabled = True
End If
Case "quit"
Dim result As DialogResult = MessageBox.Show("确定退出吗?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = DialogResult.Yes Then
ToolStripButtonuser.Tag = "user"
ToolStripButtonmanage.Tag = "manage"
ToolStripButtonpass.Enabled = False
ToolStripButtonmanage.Enabled = False
ToolStripButtonCut.Enabled = False
ToolStripButtonpicList.Enabled = False
End If
Case "cut"
Dim screen As New FormScreen(Me)
screen.SomeValue = webView.CoreWebView2.Source
screen.ShowDialog()
Case "pass"
Dim passwordForm As New FormPass(Me)
passwordForm.ShowDialog()
Case "manage"
Dim ManageForm As New FormUrlList(Me)
ManageForm.ShowDialog()
If ManageForm.return_url <> "" Then
AddNewTabPage(ManageForm.return_url)
End If
Case "droplist"
Dim addressForm As New FormAddress(Me)
addressForm.ShowDialog()
Dim returnedValue As String = addressForm.ReturnValue
Case "pics"
Dim picsform As New FormImageList(Me)
picsform.ShowDialog()
Case "help"
Dim helpForm As New FormHelp()
helpForm.ShowDialog()
End Select
End Sub
' 这里 是通过TabControl1 webViewList 获取里面的 WebView2
Private Function GetActiveWebView() As WebView2
Dim v As WebView2
Try
v = webViewList(TabControl1.SelectedIndex - 1)
Catch
Return Nothing
End Try
If TabControl1.SelectedIndex > 0 Then
Return webViewList(TabControl1.SelectedIndex - 1)
End If
End Function