525 Aufrufe
Gefragt in Datenbanken von
Hallo,

ich nutze das RTF-Textfeld von Lebans

www.lebans.com/richtext.htm

in meiner Applikation. Nun möchte ich nicht das Bilder (NUR Text) reinkopiert werden ([STRG]+[V]. Also habe ich eine Funktion gefunden die prüft, ob sich Text in der Zwischenablage befindet. Wenn ja kann eingefügt werden. Bei allen anderen Format kommt eine Fehlermeldung, das nur Text eingefügt werden kann. Das funktioniert soweit auch. Code kommt unten.

Allerdings treten nun 2 Probleme auf. Wenn ein Bild in der Zwischenablage ist, kommt ja die Fehlermeldung. Bestätigt man die mit "Ja" wird ein " v " eingefügt. Was kann ich tun damit das nicht passiert.

Das 2.Problem ist wenn man zB aus Word heraus Text und Bild in der Zwischenablage sind, wird auch das Bild eingefügt. Was kann ich tun damit nur der Text eingefügt wird.


Public Function IsClibboardText() As Boolean

Dim bolResult As Boolean
bolResult = False

Dim hTmpStr As Long
Dim pTmpStr As Long
Dim TmpStr As String

' Zwischenablage öffnen
Call OpenClipboard(0)
' Anzahl der verschiedenen Formate der Zwischenablage ermitteln
' Debug.Print "Anzahl verschiedender Clipboard-Formate: " & CountClipboardFormats()

' Prüfen, welche Datenformate sich in der
' Zwischenablage befinden
For I = 0 To CountClipboardFormats - 1

lngFormat = EnumClipboardFormats(lngFormat)
If lngFormat = 0 Then Exit For

' Format auswerten

Select Case lngFormat
Case CF_TEXT
' Handle zum String ermitteln
hTmpStr = GetClipboardData(CF_TEXT)
' Pointer des Strings ermitteln
pTmpStr = GlobalLock(hTmpStr)
' String in eine Variable kopieren
TmpStr = Space(lstrlen(ByVal pTmpStr))
Call lStrCpy(TmpStr, ByVal pTmpStr)
Debug.Print " text aus der Zwischenablage: " & TmpStr
' Pointer zerstören um Ressourcen zu sparen
GlobalUnlock hTmpStr
Call CloseClipboard
bolResult = True
IsClibboardText = bolResult
Exit Function

Case Else

End Select

Next I

IsClibboardText = bolResult

Call CloseClipboard

End Function


Der Code der das Einfügen von Bildern verhindert:


If Not IsClibboardText Then
KeyCode = 0
MsgBox "Fehler", vbCritical + vbOKOnly, "Hinweis"
End If

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...