onedrive直链解析源码及成品

VB.NET · 2023-05-01 · 740 人浏览

QQ五笔截图未命名.png

Imports System.Text.RegularExpressions ' 导入正则表达式命名空间
Imports System.Net ' 导入网络请求命名空间

Public Class Form1 ' 定义窗体类
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 按钮1的点击事件处理程序
        Dim url As String = TextBox1.Text ' 从文本框1获取输入的链接
        Dim regex_domain As New Regex("^https:\/\/([\.\w-]+)\/.*$") ' 定义匹配域名的正则表达式对象
        Dim regex_name As New Regex("\/g\/personal\/(\w+)\/") ' 定义匹配用户名的正则表达式对象
        Dim regex_link As New Regex("\/([^\/\?\:]+)\?") ' 定义匹配分享链接的正则表达式对象
        Dim domain As String = regex_domain.Match(url).Groups(1).Value ' 匹配出链接中的域名
        Dim name As String = regex_name.Match(url).Groups(1).Value ' 匹配出链接中的用户名
        Dim link As String = regex_link.Match(url).Groups(1).Value ' 匹配出链接中的分享链接
        If url.Contains("/:f:/") Then ' 判断链接是否为文件夹类型
            TextBox2.Text = "当前分享的链接为文件夹,无法解析。" ' 如果是,则提示无法解析
        Else ' 如果不是文件夹类型
            Dim direct_url As String = $"https://{domain}/personal/{name}/_layouts/52/download.aspx?share={link}" ' 组装出直链地址
            TextBox2.Text = direct_url ' 将直链地址显示在文本框2中
        End If
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' 按钮2的点击事件处理程序
        TextBox1.Clear() ' 清空文本框1中的内容
        TextBox2.Clear() ' 清空文本框2中的内容
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click ' 按钮3的点击事件处理程序
        If TextBox2.Text = "" Then ' 判断文本框2中是否有内容
            MsgBox("未生成解析的地址,请生成解析后重试。") ' 如果没有,则提示用户先生成解析地址
        Else ' 如果有
            Process.Start(TextBox2.Text) ' 打开默认浏览器并访问直链地址
        End If
    End Sub
End Class

成品及源码下载

onedrive解析成品及源码.rar

VB.NET
  1. asdas 2023-05-30

    谢谢大佬 么么哒

  2. asdas 2023-05-29

    求成品 大佬。、。不会编程

    1. LaoDan (作者)  2023-05-29
      @asdas

      好的,我编译一下,在帖子里面放出来成品吧。