乐筑天下

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

检查是否打开了图形(文件)

[复制链接]

23

主题

72

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
164
发表于 2007-12-8 06:52:17 | 显示全部楼层 |阅读模式
有可能用VBA代码找到AutoCAD是否有打开的文件,或者根本没有打开的文件吗?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

34

主题

118

帖子

1

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2007-12-9 08:35:33 | 显示全部楼层

  1. 'Sample Code: Microsoft Visual Basic version of IsFileAlreadyOpen
  2. '----------------------------------------------------------------
  3.       ' Declaration for APIs used by our function...
  4.       Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal
  5.       lpPathName As String, ByVal iReadWrite As Long) As Long
  6.       Private Declare Function GetLastError Lib "kernel32" () As Long
  7.       Private Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal
  8.       hFile As Long) As Long
  9.       Function IsFileAlreadyOpen(Filename As String) As Boolean
  10.          Dim hFile As Long
  11.          Dim lastErr As Long
  12.          ' Initialize file handle and error variable.
  13.          hFile = -1
  14.          lastErr = 0
  15.          ' Open for for read and exclusive sharing.
  16.          hFile = lopen(Filename, &H10)
  17.          ' If we couldn't open the file, get the last error.
  18.          If hFile = -1 Then
  19.             lastErr = Err.LastDllError
  20.          ' Make sure we close the file on success.
  21.          Else
  22.             lclose (hFile)
  23.          End If
  24.          ' Check for sharing violation error.
  25.          If (hFile = -1) And (lastErr = 32) Then
  26.             IsFileAlreadyOpen = True
  27.          Else
  28.             IsFileAlreadyOpen = False
  29.          End If
  30.       End Function
回复

使用道具 举报

23

主题

72

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
164
发表于 2007-12-12 01:56:11 | 显示全部楼层
好,我试试看!
回复

使用道具 举报

4

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
29
发表于 2007-12-13 13:00:50 | 显示全部楼层
您好,
现在无法尝试使用它来提供完美的代码
但我认为它是这样的:
msgbox application.documents。计数
希望它能工作
/r
ps
我希望我已经理解了你的问题。。。
回复

使用道具 举报

34

主题

118

帖子

1

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2007-12-14 03:20:34 | 显示全部楼层
检查这个
  1.       ' Declaration for APIs used by our function...
  2.       Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
  3.       Private Declare Function GetLastError Lib "kernel32" () As Long
  4.       Private Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
  5. Sub test()
  6. IsFileAlreadyOpen ("P:\Autocad\Library\Test.dwg")
  7. End Sub
  8.       Function IsFileAlreadyOpen(Filename As String) As Boolean
  9.          Dim hFile As Long
  10.          Dim lastErr As Long
  11.          ' Initialize file handle and error variable.
  12.          hFile = -1
  13.          lastErr = 0
  14.          ' Open for for read and exclusive sharing.
  15.          hFile = lopen(Filename, &H10)
  16.          ' If we couldn't open the file, get the last error.
  17.          If hFile = -1 Then
  18.             lastErr = Err.LastDllError
  19.          ' Make sure we close the file on success.
  20.          Else
  21.             lclose (hFile)
  22.          End If
  23.          ' Check for sharing violation error.
  24.          If (hFile = -1) And (lastErr = 32) Then
  25.             IsFileAlreadyOpen = True
  26.             MsgBox Filename & " Is Already Open"
  27.          Else
  28.             IsFileAlreadyOpen = False
  29.             ThisDrawing.Application.Documents.Open Filename
  30.          End If
  31.       End Function

回复

使用道具 举报

23

主题

72

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
164
发表于 2008-3-2 05:11:27 | 显示全部楼层
非常感谢Ricky_76,
代码对我来说已经足够了!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 05:20 , Processed in 0.714091 second(s), 65 queries .

© 2020-2025 乐筑天下

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