乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 86|回复: 4

无法获得剪贴板数据长度

[复制链接]

4

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-6-27 10:23:00 | 显示全部楼层 |阅读模式
请教下各位高手,之前我在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
回复

使用道具 举报

4

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-6-27 16:17:00 | 显示全部楼层
ddddddddddddddd
回复

使用道具 举报

4

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-6-28 14:10:00 | 显示全部楼层
ddddddddddd
回复

使用道具 举报

4

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-6-30 14:56:00 | 显示全部楼层
ddddddddddd
回复

使用道具 举报

4

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-4 12:13:00 | 显示全部楼层
dddddddddddd
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-19 08:34 , Processed in 0.386735 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表