查看: 4  |  回复: 0
  VB6 避免 Clipboard.SetData 出错,子程序 f_SafeSetClipboardPicture(ByVal lngResPic As Lon
楼主
发表于 昨天 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次
    For iRetry = 1 To 3
        On Error Resume Next
        Clipboard.Clear ' 清空剪贴板(先尝试清空,避免占用)

        ' 设置图片到剪贴板
        Clipboard.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

    On Error GoTo 0

    f_SafeSetClipboardPicture = blnSuccess
End Function


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