明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 362|回复: 4

无法获得剪贴板数据长度

[复制链接]
发表于 2022-6-27 10:23 | 显示全部楼层 |阅读模式
请教下各位高手,之前我在CAD2007,32位版本做了一个从剪贴板获得坐标,然后在CAD里导入变成对应坐标的圆的VBA程序,可等我把它移至64位的CAD2020版本后 原来代码中获得剪贴板数据长度lstrlen  却总是返回0值,这里请教下是怎么回事 或者有什么其它方法吗?相关代码如下


  Public Const CF_TEXT = 1
  Public Declare PtrSafe Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
  Public Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
  Public Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
  Public Declare PtrSafe Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
  Public Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Long, ByVal ByteLen As Long)



Public Sub location_clipboard()
        Dim hStrPtr     As Long, lLength       As Long, sBuffer       As String, str1() As String, str2() As String, Stext As String
        Dim nc As Integer
        CloseClipboard
        On Error Resume Next
        OpenClipboard 0&
        hStrPtr = GetClipboardData(CF_TEXT)
        lLength = lstrlen(hStrPtr) '就是这里 总是返回0 导致我无法赋值给其它变量
        If lLength > 0 Then
            sBuffer = Space$(lLength)
            CopyMemory ByVal sBuffer, ByVal hStrPtr, lLength
        end if   
End Sub

 楼主| 发表于 2022-6-27 16:17 | 显示全部楼层
ddddddddddddddd
 楼主| 发表于 2022-6-28 14:10 | 显示全部楼层
ddddddddddd
 楼主| 发表于 2022-6-30 14:56 | 显示全部楼层
ddddddddddd
 楼主| 发表于 2022-7-4 12:13 | 显示全部楼层
dddddddddddd
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-5 10:58 , Processed in 0.314701 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表