2

Clipboard クラスを使用して、Skype の完全な引用のように、クリップボードからすべてのデータを取得することはできますか? 彼らはある種のメタデータを使用していると思います。これは、何かが引用であるかどうかを判断する方法です。

Clipboard クラスからどのようにアクセスできますか? Skype 見積もりを設定/復元するには、どの関数を呼び出しますか?

助けてくれてありがとう!

Imports System.IO
Imports System.Text

Public Class Form1
    Dim locale As New MemoryStream()
    Private Sub l() Handles MyBase.Load

        Dim strr As New StreamReader(CType(Clipboard.GetData("SkypeMessageFragment"), System.IO.Stream))
        locale = Clipboard.GetData("locale")
        TextBox1.Text = strr.ReadToEnd()
        For Each x In Clipboard.GetDataObject().GetFormats()
            'MessageBox.Show("Format " + x + ": " + Clipboard.GetData(x).ToString)
        Next
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Clipboard.Clear()
        Clipboard.SetData("SkypeMessageFragment", StreamFromString(TextBox1.Text))
        Clipboard.SetData("Text", "testing")
        Clipboard.SetData("System.String", "testing")
        Clipboard.SetData("UnicodeText", "testing")
        Clipboard.SetData("OEMText", "testing")
        Clipboard.SetData("locale", locale)
    End Sub
    Private Shared Function StreamFromString(ByVal s As String) As Stream
        Dim encoding As New System.Text.UnicodeEncoding()
        Dim mem As New MemoryStream(encoding.GetBytes(s))
        Return mem
    End Function


End Class
4

2 に答える 2

2

フォーマットがわからない場合は、実験する必要があります。Clipboard.GetDataObject().GetFormats() を使用して、使用可能な形式を繰り返し表示することから始めます。これらは文字列です。何かわかるかもしれません。それらの 1 つを Clipboard.GetData() に渡すと、不透明なオブジェクトが返されます。ウォッチ式に入れてください。おそらくデバッガーはそれを理解できます。

Skype がクリップ ボードを独自の用途に使用している場合、使用可能なものを掘り出せる見込みはほとんどありません。MS Word などの一般的なアプリにクリップボードのデータを提供するつもりであれば、何らかのアドインを使用する必要はありません。

于 2010-04-30T00:01:06.900 に答える