查看: 49  |  回复: 0
  VB6 避免 Clipboard.SetData 出错,子程序 f_SafeSetClipboardPicture(ByVal lngResPic As Lon
楼主
发表于 2025年11月28日 21:13

安全使用剪切板,不报错。

Option Explicit
Private Declare Sub Sleep Lib "kernel32.dll" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Const CF_BITMAP = 2

' 避免 Clipboard.SetData 出错
Private Function f_SafeSetClipboardPicture(ByVal lngResPic As Long) As Boolean
    Dim iRetry%
    Dim blnSuccess As Boolean

    ' 最多重试3次
    With Clipboard
        For iRetry = 1 To 3
            On Error Resume Next
            .Clear    ' 清空剪贴板(先尝试清空,避免占用)

            ' 设置图片到剪贴板
            .SetData LoadResPicture(lngResPic, 0)

            ' 检查是否成功
            If Err.Number = 0 Then
                blnSuccess = True
                Exit For
            Else
                ' 等待一小段时间后重试
                If iRetry < 3 Then Sleep 100
                Err.Clear
            End If
        Next iRetry
    End With
    On Error GoTo 0

    f_SafeSetClipboardPicture = blnSuccess
End Function


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com