Hallo zusammen.
habe mir mal die VS 2010 Express Version gesaugt und wollt eigentlich nur ein wenig testen.
Nun beschäftige ich mich gerade mit dem Clipboard (der Zwischenablage)
Ich möchte im Grunde Inhalte aus dem Clipboard in mehrere (je nach Typ) Arrays schreiben.
Ein Problem habe ich beim Image-Typ.
Wie prüfe ich am besten ob sich das Image Object im Clipboard von dem dass ich zuletzt abgerufen habe unterscheidet?
Mein bisheriger Quelltext (alle 500ms durch einen Timer aufgerufen [geht das evtl. auch eleganter?]) sieht so aus:
Dass ich besser abfragen könnte welcher Typ sich in der Zwischenablage befindet ist mir bewusst, ist hier aber erstmal vollkommen egal.
Der farbig hervorgehobene Quelltext ist mein Sorgenkind.
Bisherige Versuche waren:
Wünsche zudem einen guten Start ins Wochenende
habe mir mal die VS 2010 Express Version gesaugt und wollt eigentlich nur ein wenig testen.
Nun beschäftige ich mich gerade mit dem Clipboard (der Zwischenablage)
Ich möchte im Grunde Inhalte aus dem Clipboard in mehrere (je nach Typ) Arrays schreiben.
Ein Problem habe ich beim Image-Typ.
Wie prüfe ich am besten ob sich das Image Object im Clipboard von dem dass ich zuletzt abgerufen habe unterscheidet?
Mein bisheriger Quelltext (alle 500ms durch einen Timer aufgerufen [geht das evtl. auch eleganter?]) sieht so aus:
VB.NET-Quellcode
- Private Sub CheckClipboard(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTick.Tick
- If (Clipboard.ContainsText) Then
- If ((curText <> Clipboard.GetText)) Then
- ReDim Preserve txtArr(txtArr.Count)
- ReDim Preserve typeArr(typeArr.Count)
- txtArr(txtArr.Count - 2) = Clipboard.GetText
- typeArr(typeArr.Count - 2) = "Text"
- If (Clipboard.GetText.ToString.Length > 15) Then
- listContent.Items.Add("Text - " & Clipboard.GetText.ToString.Substring(0, 14))
- Else
- listContent.Items.Add("Text - " & Clipboard.GetText)
- End If
- curText = Clipboard.GetText
- End If
- ElseIf (Clipboard.ContainsImage) Then
- If Not (curImg Is Nothing) Then
- If Not (curImg Is Clipboard.GetImage) Then
- ReDim Preserve imgArr(imgArr.Count)
- ReDim Preserve typeArr(typeArr.Count)
- imgArr(imgArr.Count - 2) = Clipboard.GetImage
- typeArr(typeArr.Count - 2) = "Image"
- listContent.Items.Add("Image - " & Clipboard.GetImage.Tag)
- curImg = Clipboard.GetImage.Clone
- End If
- Else
- ReDim Preserve imgArr(imgArr.Count)
- ReDim Preserve typeArr(typeArr.Count)
- imgArr(imgArr.Count - 2) = Clipboard.GetImage
- typeArr(typeArr.Count - 2) = "Image"
- listContent.Items.Add("Image - " & Clipboard.GetImage.Tag)
- curImg = Clipboard.GetImage
- End If
- End If
- End Sub
Dass ich besser abfragen könnte welcher Typ sich in der Zwischenablage befindet ist mir bewusst, ist hier aber erstmal vollkommen egal.
Der farbig hervorgehobene Quelltext ist mein Sorgenkind.
Bisherige Versuche waren:
- über .GetHashCode zu vergleichen
- über einen md5 checksum vergleichen...doch leider erfordert md5.create ein Byte-Array und ich weiß nicht wie ich dieses aus einem Image erzeuge
- über Breite und Höhe vergleichen (was natürlich total dämlich wäre)
- über .Pallette vergleichen (auch dies bringts nicht wirklich)
Wünsche zudem einen guten Start ins Wochenende