本帖最后由 z761003 于 2022-3-21 05:26 编辑
推敲了按下面的整成功了,常用的能应付了,感觉一个简单的复制粘贴被Windows设计得好鸡肋,为什么不简单些另外好像枚举时有个 HTML格式的,没看到文档里有对应的格式,不管这么多了
Func _ClipBoard_Backup()
If Not _ClipBoard_Open(0) Then SetError(-1)
Local $iFormat,$lsData
; 枚举剪贴板格式
Do
$iFormat = _ClipBoard_EnumFormats ($iFormat)
If $iFormat <> 0 Then
Switch _ClipBoard_FormatStr ($iFormat)
Case "OEM Text"
Assign("_ClipBoard_OEMText",_ClipBoard_GetData($CF_OEMTEXT),2)
ConsoleWrite("OEM Text")
Case "Unicode Text"
Assign("_ClipBoard_UnicodeText",_ClipBoard_GetData($CF_UNICODETEXT),2)
ConsoleWrite("Unicode Text")
Case "Locale"
Assign("_ClipBoard_Locale",_ClipBoard_GetData($CF_LOCALE),2)
ConsoleWrite("Locale")
Case "Text"
Assign("_ClipBoard_Text",_ClipBoard_GetData($CF_TEXT),2)
ConsoleWrite("Text")
Case "Bitmap"
Assign("_ClipBoard_Bitmap",_ClipBoard_GetData($CF_BITMAP),2)
ConsoleWrite("Bitmap")
Case "DIB V5"
Assign("_ClipBoard_DIBV5",_ClipBoard_GetData($CF_DIBV5),2)
ConsoleWrite("CF_DIBV5")
Case "DIB"
Assign("_ClipBoard_DIB",_ClipBoard_GetData($CF_DIB),2)
ConsoleWrite("CF_DIB")
Case "HDROP"
Assign("_ClipBoard_HDROP",_ClipBoard_GetData($CF_HDROP),2)
ConsoleWrite("HDROP")
EndSwitch
EndIf
Until $iFormat = 0
EndFunc
Func _ClipBoard_Restore()
if IsDeclared("_ClipBoard_OEMText") Then
_ClipBoard_SetData($_ClipBoard_OEMText,$CF_OEMTEXT)
$_ClipBoard_OEMText=Null
EndIf
if IsDeclared("_ClipBoard_UnicodeText") Then
_ClipBoard_SetData($_ClipBoard_UnicodeText,$CF_UNICODETEXT)
$_ClipBoard_UnicodeText=Null
EndIf
if IsDeclared("_ClipBoard_Locale") Then
_ClipBoard_SetData($_ClipBoard_Locale,$CF_LOCALE)
$_ClipBoard_Locale=Null
EndIf
if IsDeclared("_ClipBoard_Text") Then
_ClipBoard_SetData($_ClipBoard_Text,$CF_TEXT)
$_ClipBoard_Text=Null
EndIf
if IsDeclared("_ClipBoard_Bitmap") Then
_ClipBoard_SetData($_ClipBoard_Bitmap,$CF_BITMAP)
$_ClipBoard_Bitmap=Null
EndIf
if IsDeclared("_ClipBoard_DIBV5") Then
_ClipBoard_SetData($_ClipBoard_DIBV5,$CF_DIBV5)
$_ClipBoard_DIBV5=Null
EndIf
if IsDeclared("_ClipBoard_DIB") Then
_ClipBoard_SetData($_ClipBoard_DIB,$CF_DIB)
$_ClipBoard_DIB=Null
EndIf
if IsDeclared("_ClipBoard_HDROP") Then
_ClipBoard_SetData($_ClipBoard_HDROP,$CF_HDROP)
$_ClipBoard_HDROP=Null
EndIf
; 关闭剪贴板
_ClipBoard_Close ()
EndFunc
|