QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1905|回复: 4
收起左侧

[已解决] 请教一个很弱的问题!关于VBA的

[复制链接]
发表于 2009-10-20 14:22:45 | 显示全部楼层 |阅读模式 来自: 中国湖北十堰

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
问题1.为什么在百度搜出来的VBA 都是用OFFICE的Excel 里的宏打开》??% O7 W  R( b4 w2 B+ u% m
          我去试过了   大不开/ C+ t7 K  _7 j) h2 z
          然后用AUTOCAD里的宏可以打开       不过需要密码
4 A2 c+ Z; m1 j+ N问题2.怎么样可以CrackVBA的密码?有没有什么工具?(我现在要打开的VBA是我们公司一台数控冲床的CAD转换出NC程序的一个插件,不过里面设计有点不合理    我想修改它)
' I6 g. f" L& d请哪位高手帮帮忙
发表于 2009-10-20 15:54:16 | 显示全部楼层 来自: 中国
一、很多大型工具软件都有VBA,比如WORD、EXCEL、AutoCAD。VBA的全称是Visual Basic for Applications,这是微软开发的面向应用程序的VB编程开发环境,通俗点说就是VB框架搭配上应用程序内核。所以EXCEL的VBA和AutoCAD的VBA是不一样的。  f, [. E5 L/ r7 G+ q% X' H
二、VBA密码Crack,下载附件并按说明操作。; Y0 t! H7 `5 @
VBA.rar (1.19 MB, 下载次数: 13)

评分

参与人数 1三维币 +8 收起 理由
wang2003 + 8 好资料,感谢您对论坛的支持!

查看全部评分

发表于 2009-10-20 16:46:56 | 显示全部楼层 来自: 中国河北石家庄
老师真是高手,几乎没有不懂的问题。
 楼主| 发表于 2009-10-22 12:43:34 | 显示全部楼层 来自: 中国湖北十堰
谢谢版主!~   懂了
( u) m) X' `% z  e附件我下了   希望可以解密码3 H8 b9 Y& z" ]) R9 }
中午就不试了 7 [: @( W7 E0 a2 w- [  i
晚上回来在试试
( c0 a- c, G2 w谢谢版主!~厉害
 楼主| 发表于 2009-10-22 12:55:03 | 显示全部楼层 来自: 中国湖北十堰
本来想晚上回来在试试的. h; R' B1 ]9 o$ ]
但是现在不试睡不着
! R. Y! N! o: {嘿嘿
) V. H6 ]9 |# ?9 A5 \+ U# _* o  |) d( D8 |0 I" v5 E3 `8 n
试了试% W+ J6 f# |1 l( s. ]- Q: X9 w
谢谢版主   打开了那个文件
8 Z9 O4 f; s: B下面是代码5 y: c( e# T) o& Z& Z: h* y) ~) R
'Declare Function GS_MHDog Lib "win32dll.dll" (DogData As MH_DLL_PARA) As Long
4 _% R+ A5 Q/ N( L% v'Declare Function InstDrv Lib "RCMicroDogSetup.dll" Alias "InstDriver" (ByVal a As Integer) As Integer- c7 c. F5 C0 \/ L& u  X
'Declare Function UninstDrv Lib "RCMicroDogSetup.dll" Alias "UninstallDriver" (ByVal a As Integer) As Integer
& D" T9 p. A- n'Declare Function GetDogDriverInfo Lib "RCMicroDogSetup.dll" () As Long5 j* o% O4 _5 l. P1 v- a
'Declare Sub DriverDialog Lib "RCMicroDogSetup.dll" ()
/ h8 l; z  d& p4 c/ u'Declare Function NotifyPullOutAndPlugInUsbDog Lib "RCMicroDogSetup.dll" (ByVal a As Integer) As Integer0 i' K8 j  v) q$ ~9 F1 v6 h
$ c2 N: C- [& J) T
'Declare Function yy Lib "jmcar.dll" () As Long, l3 s. }4 Z, c2 x
'Public xxx As New CAMZDSHXJ
/ v  Q+ H& X" W! H! ~" F: N' d9 K' f% iConst SYNCHRONIZE = &H100000
4 m. F( S6 \: a" T* @2 E" zConst INFINITE = &HFFFFFFFF  O" @/ H) K3 t% F$ P3 g" d- k
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long1 R" |8 H- I# F0 W5 Z
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long  {+ n& |6 p4 V& w% y, I
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
" t0 i2 V2 e3 Y/ l- O4 {Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long9 M  N" _! I% u4 V  l: ]
& g2 X. `6 `( _2 b% f
Public Function getmac() As String" o1 E) u& {  ]7 Q6 O0 e8 T
Dim retval
0 Y9 A& l/ q1 Y% Q  R Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变数
3 _! W, B0 c1 u Dim MYSTR, lstr As String9 h5 A. b: A* S+ g$ V6 A& t
If Dir("D:\cnc\hxj1.txt") = "" Then
% D9 X' p' v, m0 w' J  Else
3 s) ~6 L3 |, m4 E    Kill "d:\cnc\hxj1.txt "7 x2 H% q$ o: P' Z; o; H* j* g: R
  End If
, d5 g" r# F) E7 \4 X" P# a  pId = Shell("cmd /C ipconfig /all > D:\CNC\hxj1.txt ", 0) ' Shell 传回 Process Id: C8 V/ b8 c7 B0 t
  pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle
$ A: o. C; g6 I2 r; ]6 O  If pHnd <> 0 Then
2 ^- P: h; d1 \* |    Call WaitForSingleObject(pHnd, INFINITE) ' 无限等待,直到程序结束
9 L5 ^/ v  N* K0 ~7 \    Call CloseHandle(pHnd)
' @4 `( H: j( v( k  End If
, A' |& j. M% j9 ^  Close
, l2 a* L2 G- O+ W1 I  Open "d:\cnc\hxj1.txt " For Input As #3
& K1 D9 o8 }2 H. d4 W; p  Do While Not EOF(3)9 b7 T6 A! T9 z
    Line Input #3, lstr+ n& _3 |5 c6 F! B/ `+ P* n
    If InStr(lstr, "Physical Address") > 1 Then
. C, p3 p  a* x7 M& i: A6 M4 E      MYSTR = Split(lstr, ":", 2, 1)7 Z8 w+ t% x7 X  Z8 `" ^
      getmac = MYSTR(1)
; ?  t2 D* S% M7 M5 D, f- J8 }      Exit Do
  s  A3 n' Z1 Q8 O. L1 h    End If, n; S3 ]: e; o/ G) ^
   Loop
. Y# |5 C: S. m' b  Close
  t6 n/ K2 N  Y7 l/ @End Function1 P; [8 @& g) ~# o4 o' p
Public Sub DelDoubleALL()  '删除重复图素
: T. L% M  c! I2 E0 a0 k Dim i, j, k As Integer5 E, H( k* Z% m7 V! b7 w
Dim ssetObj As AcadSelectionSet
. Q) A( L# _% r1 A- `) [: ?: _ Dim dege1 As Double, dege2 As Double: }5 D- ^6 a* g  S! y/ ^
Dim dege3 As Double, dege4 As Double# f- E: o5 W5 ^; m# S
Dim pt1 As Variant, pt2 As Variant, Yuanr As Double, yuanr2 As Double9 H- u3 r' j! h, V  b7 z& e
Dim pt10 As Variant, pt20 As Variant, Yuanr1 As Double
  @- w% B5 `+ U& e, t# |, J Dim ic As Integer7 D2 M" ~( }# [6 B  G) E
Dim str1 As String, str2 As String, id1 As String, id2 As String& u& d( t! X5 ~2 D- E
Dim EntName() As String, line1() As Variant, line2() As Variant6 t$ ^9 }6 a0 p7 E: u
Dim line3() As Double$ i2 c0 L6 g& z! p
Dim arc1() As Variant, arc2() As Double, arc3() As Double, arc4() As Double; {; v4 M: P' W) Z' a3 t
Dim cir1() As Variant, cir2() As Double, blk1() As Variant
- H+ I) H6 I* L8 t Dim blk2() As String
7 A2 @, `$ B6 k$ t ic = ThisDrawing.SelectionSets.Count '选择集的个数+ J7 M9 ?& r- e6 \9 A% S
If ic > 0 Then
  g, x( k* k: j7 y    For i = ic - 1 To 0 Step -1" Y: P* ?3 M/ i8 N
        Set ssetObj = ThisDrawing.SelectionSets(i)) m* a4 U6 n- p6 X8 o# a
        If ssetObj.Name = "SSSS" Then ssetObj.Delete '存在该选择集删除它
! l* \* z3 Y  y1 m3 z0 D4 _    Next2 M: Q' C1 j1 N: P
End If6 U1 o% H( j$ _0 `+ T6 U# S- q
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
# d; j5 C+ f& c" w0 f3 u" {) j" B    ' Add objects to a selection set by prompting user to select on the screen
$ H' r% i! r" t: T9 x'    ssetObj.SelectOnScreen
$ Z7 G$ e/ A7 j3 z+ b9 L0 m: H4 y  P            ssetObj.Select acSelectionSetAll '把全部图形加入选择集
+ p- h7 z# W/ J* S' Y'            sele1.Select acSelectionSetAll, , , ft, fd  '层选择
3 d/ c' h* k: c' o1 S    On Error GoTo ccc1$ G: _" Y4 y, R: ^0 M1 k$ x
    ic = ssetObj.Count - 1. {3 L: I  m+ ^! i: D  U( C: k
    If ic < 1 Then '选择集孔或图素小于2则退出
9 u) z7 P# Q3 @1 X9 H7 Y" w     Exit Sub* K4 b" r* V) S0 J  O
    End If6 e3 X  d- ~, y' j  c' F2 K
    ReDim EntName(0 To ic)! q) q4 B; V8 P3 R
    ReDim line1(0 To ic): ReDim line2(0 To ic): ReDim line3(0 To ic)1 Z* c+ C9 e6 c- d& ]$ ?! B% I- J. \
    ReDim arc1(0 To ic): ReDim arc2(0 To ic): ReDim arc3(0 To ic)
* c( I9 ]& x$ @4 `# z1 a    ReDim arc4(0 To ic)
3 s# o+ d5 d4 |5 \    ReDim cir1(0 To ic): ReDim cir2(0 To ic)2 M6 _+ k) s; M5 K0 i- O
    ReDim blk1(0 To ic): ReDim blk2(0 To ic)  W/ [; W# D+ T
With ssetObj( N, `. O' f2 i, j0 G0 J' ^
    For i = 0 To ic
; @  L* n7 C5 e6 s3 e         EntName(i) = ssetObj.Item(i).ObjectName; P* T& z/ t4 }& h  Y, R- H
         Select Case EntName(i)
7 n/ d% x- l& D8 G+ T8 y! y  W          Case "AcDbLine"/ W' w; `+ k$ u0 @
           line1(i) = .Item(i).StartPoint
& l1 [0 B' B" V2 ]           line2(i) = .Item(i).EndPoint1 h. {. f! [) J+ G: U8 }! S
           line3(i) = .Item(i).Angle' o) l* T7 Y+ F
          Case "AcDbCircle"
3 s" ^! h# Q, i: V7 A! f              cir1(i) = .Item(i).Center) h1 K+ D5 o' w2 v
              cir2(i) = Int(.Item(i).Radius * 1000) / 10001 a) D* `2 k* m1 |# t& \9 X) X
          Case "AcDbArc"
+ ?6 e1 S* {1 F) b: o               arc1(i) = .Item(i).Center9 t3 O0 k* z# ]* v
               arc2(i) = Int(.Item(i).StartAngle * 1000) / 1000* ^% V9 e: _& h" O) j- }
               arc3(i) = Int(.Item(i).EndAngle * 1000) / 1000' [! \* O. r8 D, I7 @( d+ O
               arc4(i) = Int(.Item(i).Radius * 1000) / 10008 V" T' w" I) c! @- L
          Case "AcDbBlockReference"' h% x9 i/ W, g9 |& k+ H8 R+ G% N- f4 d
              blk1(i) = .Item(i).InsertionPoint
3 g) K$ A) p$ L; x1 ?& ]7 X              blk2(i) = .Item(i).Name
0 K* Q; Y; T8 G  }/ o8 ~          End Select
3 T. u- H  k2 V- E! I         
. y" a$ F2 Z6 x. O7 b) \3 u2 p- Y4 m    Next i" Z9 [" x. a1 J0 k- K* J( ~, @+ M: N

, O4 B- J, ^0 w8 @5 q For i = 0 To ic - 1. S' e3 `4 F/ f+ \+ ]0 z  u+ Y
    id1 = EntName(i)# j, y; I) U( Q( x( M4 Z& w
   For j = i + 1 To ic
- Z% M6 l- C( F8 s5 L  f6 c      id2 = EntName(j)
. y8 \, q' m" [) m     If id1 = id2 Then8 }1 k: i6 W- S
       Select Case id1
5 H$ @( w6 w: u' W3 A, k# t3 ?          Case "AcDbLine". D: ]0 z% i: Z1 T) g
            pt1 = line1(i)+ X; i5 {, k+ F: p
            pt2 = line2(i)1 {( Q* C8 c' W3 I
            dege1 = line3(i)
2 c( w5 [# a& H' X: c            pt10 = line1(j)
5 M# R6 a  O$ i9 u5 A% Q. U# {' l            pt20 = line2(j)) Q8 i6 [+ C4 U
            dege2 = line3(j)4 S2 d. P" z4 S1 q+ R, i* }$ L) N5 ~, o
            If Abs(pt1(0) - pt10(0)) < 0.01 And Abs(pt1(1) - pt10(1)) < 0.01 And _
( z$ U% M+ n; ^3 l            Abs(pt2(0) - pt20(0)) < 0.01 And Abs(pt2(1) - pt20(1)) < 0.01 Then; l) ^* ?: R) Q: A
               .Item(i).Delete5 @0 \( W; @1 Y! T4 _9 Y) P
               Exit For) P/ k4 M8 {% K2 s/ f* z
            End If
5 {, c" c1 ?/ Y. y* F1 Z! q( u            If Int(Abs(dege1 - dege2) * 10000 + 0.5) / 10000 = 3.1416 Then
" J3 G  |: {% r7 S/ x2 |1 U                If Abs(pt1(0) - pt20(0)) < 0.01 And Abs(pt1(1) - pt20(1)) < 0.01 And _$ K% S/ U/ K2 x) y  D/ r
                Abs(pt2(0) - pt10(0)) < 0.01 And Abs(pt2(1) - pt10(1)) < 0.01 Then* ^2 d! U- @0 T+ m% C
                   .Item(i).Delete
  @2 ^$ d3 X4 X$ I9 y% w+ X) m                   Exit For7 ?% d+ v. U4 X" M
                End If2 D! O, ?: k+ R- Y' n- I
            End If; N" S4 ~6 l' Q9 |' P
          Case "AcDbCircle"2 y/ A4 [5 n. `- T9 c
            pt1 = cir1(i), K6 U+ w% e9 G7 g
            Yuanr = cir2(i)
- v8 Z; T: ^1 r% O+ D: M            pt2 = cir1(j)
3 C2 E% }& O8 b6 R4 @            yuanr2 = cir2(j)
; O  ?# p% u1 C2 _9 \! K$ \, U            If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 0.01 And Yuanr = yuanr2 Then
  Z7 }, W5 e+ }; N               .Item(i).Delete
) i; t+ }) m7 H/ v3 Q7 ]/ I- t               Exit For0 P, L) K8 D& f/ |1 _5 b2 S
             Else
7 d( `9 D! `- t3 j* f$ V: f. e               If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 8 Then
. y  J, A1 K% P3 Z                  .Item(i).color = acGreen9 U7 a; ^" U/ z; w/ _; w9 ], _
               End If/ x3 i* O8 z; o$ D) }
            End If
! i1 g% e3 x- z4 M4 ~! e. H0 F9 H6 n* H          Case "AcDbArc"3 ^8 ^3 f9 ?% [9 A. N# b7 d
            pt1 = arc1(i)
' C, k) Z4 `8 s( }2 M            dege1 = arc2(i)' |7 H8 S; s8 @/ b% J% c
            dege2 = arc3(i)) a" ~9 d4 `& N
            Yuanr = arc4(i)( y' ?$ K' R/ ?6 B# N
            pt2 = arc1(j)" K. m, f. Y* a8 e; |8 q
            dege3 = arc2(j)
& I, S( B" d1 Z- n% s& O% S            dege4 = arc3(j)5 N2 _* b  w9 h( [
            yuanr2 = arc4(j)
! V2 f5 k" C: g            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And Yuanr = yuanr2 _
# F) i/ m1 Q  ^  Z- }# y& O+ G            And dege1 = dege3 And dege2 = dege4 Then" Y* X& O/ `1 @2 W7 B4 S
               .Item(i).Delete
' h* `, u2 `+ W- P( j  A               Exit For
2 s7 P, z) `# u) {            End If
' j* N# U0 L) v         Case "AcDbBlockReference"+ ]. M: P) _* A/ N! `8 o
            pt1 = blk1(i)8 k( m4 m1 L/ M5 m2 c2 {! P
            str1 = blk2(i)
) t; C6 W  N8 \5 d/ s            pt2 = blk1(j)
1 z- ^( O7 G0 S9 r+ u( C            str2 = blk2(j)) w8 ]7 e. Y; n( c+ t5 S
            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And _+ |: f: E# g% [
            Trim(str1) = Trim(str2) Then
" G$ c5 [) M/ z$ z1 T               .Item(i).Delete& |* E; @5 j5 C! B' @. I4 {
               Exit For
9 o8 {; y. Y$ z6 ?            End If% M5 V$ P& c* @' }9 c% b8 E
        End Select
' N, U/ u; S. H. e) [' M; L, H      End If
  ]3 w* x. i# L' J: j$ d. N, O    Next j
1 ^. H6 n, @8 ]/ b: C7 O: y  Next i
; e- \) a1 `1 y6 l- u0 y  End With: Q/ q  p: Q& J8 z
'  MsgBox "删除重复完成!"8 k2 b3 A! A8 r6 T( N2 z
   GoTo ccc2
! _. c3 w0 d( z9 H( Accc1:  MsgBox "有错!!!"
) M5 s1 v! X8 xccc2:     'ssetObj.Delete
8 z. `& C. Y/ C" M. U$ a8 s3 J' Y
! a; ?& q$ M% |6 a# ?! u8 Z$ I0 [+ X End Sub; m# H$ F, C6 c/ d. Y# w& {

) N/ i9 O, x) M- S Public Function Clamp100(a1 As Double) As Double   '判断块存在不存在,存在=100,不存在=0
7 N) _3 h" G6 B+ D; ?    Dim p1(0 To 2) As Double '交叉选择的左下角点7 |+ N1 L8 U' q. Q2 Z( ~8 L
    Dim p2(0 To 2) As Double '交叉选择的右上角点0 M. `! K0 P! p. f# j
    Dim ssetObj As AcadSelectionSet6 l3 A& y0 m$ _; ^/ ]8 v( P
    Dim ic As Integer, j As Integer' @1 F- C: ^, W1 N, J. u
        ThisDrawing.SelectionSets("SSSS").Delete3 @3 c) L. i3 d
        Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
+ r  p! }3 d4 B7 A$ |! g( i0 F        p1(0) = a1 - 15: p1(1) = -25: p1(2) = 0
+ w9 B& M; ]* E3 T        p2(0) = a1 + 15: p2(1) = -5: p2(2) = 0
  t* w, |2 c9 _3 o7 n7 D        ssetObj.Select acSelectionSetWindow, p1, p2
' z4 x  o: C; G! l9 T+ P        For j = 0 To ssetObj.Count - 1$ i% _9 l0 d- B( H
         ssetObj.Item(j).color = acGreen+ o* U- G+ k  _  w8 S) p
          ssetObj.Item(j).Update# ^4 H% |' V( H  e2 k3 J
        Next j7 ~5 G. |/ \$ }/ `/ d
        Clamp100 = ssetObj.Count3 X) O4 a4 Z8 A& V+ V6 l  O3 {9 R3 j
End Function
5 X2 T3 A- A# C' p, W& i% B  v/ U+ M5 s6 @. z% O( j
! b& C/ l4 J" G- s+ Y$ q
0 t6 _3 Z) ], r% X8 v/ B) x; ^
: o3 x$ f5 a& u  x2 Y' B
看不太懂 不过   我在这里多学学  应该没问题的  嘿嘿
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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