Vb.net 使用Win API获取/设置剪贴板文本

Vb.net 使用Win API获取/设置剪贴板文本,vb.net,api,clipboard,clipboarddata,Vb.net,Api,Clipboard,Clipboarddata,我喜欢使用WindowsAPI做同样的事情 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click TextBox1.Text = System.Windows.Forms.Clipboard.GetText End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Han

我喜欢使用WindowsAPI做同样的事情

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.Text = System.Windows.Forms.Clipboard.GetText
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        System.Windows.Forms.Clipboard.SetText(TextBox1.Text)
    End Sub
我看这里: 但我不太确定如何使用它,以及如何将文本设置到剪贴板。
有谁能帮我吗?

与此非常相似:

我将其转换为VB.net版本,因为问题带有标签:

Public Class Form1
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function OpenClipboard(ByVal hWndNewOwner As IntPtr) As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function CloseClipboard() As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function SetClipboardData(ByVal uFormat As UIntPtr, ByVal data As IntPtr) As Boolean
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        OpenClipboard(IntPtr.Zero)
        Dim yourString = "Hello World!"
        Dim ptr As String = Marshal.StringToHGlobalUni(yourString)
        SetClipboardData(13, ptr)
        CloseClipboard()

        Marshal.FreeHGlobal(ptr)
    End Sub
End Class
公共类表单1
_
作为布尔值的公共共享函数OpenClipboard(ByVal hwndnnewowner作为IntPtr)
端函数
_
作为布尔值的公共共享函数CloseClipboard()
端函数
_
公共共享函数将clipboarddata(ByVal uFormat作为uintpttr,ByVal data作为IntPtr)设置为布尔值
端函数
私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
OpenClipboard(IntPtr.Zero)
Dim yourString=“你好,世界!”
Dim ptr As String=Marshal.StringToHGlobalUni(您的字符串)
SetClipboardData(13,ptr)
CloseClipboard()
弗里赫全球元帅(ptr)
端接头
末级

与此非常相似:

我将其转换为VB.net版本,因为问题带有标签:

Public Class Form1
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function OpenClipboard(ByVal hWndNewOwner As IntPtr) As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function CloseClipboard() As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function SetClipboardData(ByVal uFormat As UIntPtr, ByVal data As IntPtr) As Boolean
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        OpenClipboard(IntPtr.Zero)
        Dim yourString = "Hello World!"
        Dim ptr As String = Marshal.StringToHGlobalUni(yourString)
        SetClipboardData(13, ptr)
        CloseClipboard()

        Marshal.FreeHGlobal(ptr)
    End Sub
End Class
公共类表单1
_
作为布尔值的公共共享函数OpenClipboard(ByVal hwndnnewowner作为IntPtr)
端函数
_
作为布尔值的公共共享函数CloseClipboard()
端函数
_
公共共享函数将clipboarddata(ByVal uFormat作为uintpttr,ByVal data作为IntPtr)设置为布尔值
端函数
私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
OpenClipboard(IntPtr.Zero)
Dim yourString=“你好,世界!”
Dim ptr As String=Marshal.StringToHGlobalUni(您的字符串)
SetClipboardData(13,ptr)
CloseClipboard()
弗里赫全球元帅(ptr)
端接头
末级

与此非常相似:

我将其转换为VB.net版本,因为问题带有标签:

Public Class Form1
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function OpenClipboard(ByVal hWndNewOwner As IntPtr) As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function CloseClipboard() As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function SetClipboardData(ByVal uFormat As UIntPtr, ByVal data As IntPtr) As Boolean
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        OpenClipboard(IntPtr.Zero)
        Dim yourString = "Hello World!"
        Dim ptr As String = Marshal.StringToHGlobalUni(yourString)
        SetClipboardData(13, ptr)
        CloseClipboard()

        Marshal.FreeHGlobal(ptr)
    End Sub
End Class
公共类表单1
_
作为布尔值的公共共享函数OpenClipboard(ByVal hwndnnewowner作为IntPtr)
端函数
_
作为布尔值的公共共享函数CloseClipboard()
端函数
_
公共共享函数将clipboarddata(ByVal uFormat作为uintpttr,ByVal data作为IntPtr)设置为布尔值
端函数
私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
OpenClipboard(IntPtr.Zero)
Dim yourString=“你好,世界!”
Dim ptr As String=Marshal.StringToHGlobalUni(您的字符串)
SetClipboardData(13,ptr)
CloseClipboard()
弗里赫全球元帅(ptr)
端接头
末级

与此非常相似:

我将其转换为VB.net版本,因为问题带有标签:

Public Class Form1
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function OpenClipboard(ByVal hWndNewOwner As IntPtr) As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function CloseClipboard() As Boolean
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
    Public Shared Function SetClipboardData(ByVal uFormat As UIntPtr, ByVal data As IntPtr) As Boolean
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        OpenClipboard(IntPtr.Zero)
        Dim yourString = "Hello World!"
        Dim ptr As String = Marshal.StringToHGlobalUni(yourString)
        SetClipboardData(13, ptr)
        CloseClipboard()

        Marshal.FreeHGlobal(ptr)
    End Sub
End Class
公共类表单1
_
作为布尔值的公共共享函数OpenClipboard(ByVal hwndnnewowner作为IntPtr)
端函数
_
作为布尔值的公共共享函数CloseClipboard()
端函数
_
公共共享函数将clipboarddata(ByVal uFormat作为uintpttr,ByVal data作为IntPtr)设置为布尔值
端函数
私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
OpenClipboard(IntPtr.Zero)
Dim yourString=“你好,世界!”
Dim ptr As String=Marshal.StringToHGlobalUni(您的字符串)
SetClipboardData(13,ptr)
CloseClipboard()
弗里赫全球元帅(ptr)
端接头
末级
所讨论的源C#版本有一个模糊的缺陷,可能导致崩溃

如果您遇到问题,那么这里有一个链接,指向我对原始主题的回复,并提到了一个更可靠的替代方案:

所讨论的源C#版本以一种模糊的方式存在缺陷,可能导致崩溃

如果您遇到问题,那么这里有一个链接,指向我对原始主题的回复,并提到了一个更可靠的替代方案:

所讨论的源C#版本以一种模糊的方式存在缺陷,可能导致崩溃

如果您遇到问题,那么这里有一个链接,指向我对原始主题的回复,并提到了一个更可靠的替代方案:

所讨论的源C#版本以一种模糊的方式存在缺陷,可能导致崩溃

如果您遇到问题,那么这里有一个链接,指向我对原始主题的回复,并参考一个更可靠的替代方案: