QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
问题1.为什么在百度搜出来的VBA 都是用OFFICE的Excel 里的宏打开》??: p/ E- h3 a1 n3 |8 E. b
          我去试过了   大不开
, S, c) t: E% R" ]& _" P          然后用AUTOCAD里的宏可以打开       不过需要密码3 o! B2 a7 P- G) r( _6 Q5 h
问题2.怎么样可以CrackVBA的密码?有没有什么工具?(我现在要打开的VBA是我们公司一台数控冲床的CAD转换出NC程序的一个插件,不过里面设计有点不合理    我想修改它)
  ?* ]/ u% `- q/ `  Y0 \& {* c: `! F6 l. {请哪位高手帮帮忙
发表于 2009-10-20 15:54:16 | 显示全部楼层 来自: 中国
一、很多大型工具软件都有VBA,比如WORD、EXCEL、AutoCAD。VBA的全称是Visual Basic for Applications,这是微软开发的面向应用程序的VB编程开发环境,通俗点说就是VB框架搭配上应用程序内核。所以EXCEL的VBA和AutoCAD的VBA是不一样的。
1 g( @% w3 p' L. \' Q7 X二、VBA密码Crack,下载附件并按说明操作。2 j, R5 ?7 A6 Z$ i
VBA.rar (1.19 MB, 下载次数: 13)

评分

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

查看全部评分

发表于 2009-10-20 16:46:56 | 显示全部楼层 来自: 中国河北石家庄
老师真是高手,几乎没有不懂的问题。
 楼主| 发表于 2009-10-22 12:43:34 | 显示全部楼层 来自: 中国湖北十堰
谢谢版主!~   懂了
6 ?" e5 |: j9 ^+ y附件我下了   希望可以解密码: u) B; H6 P6 }- ~5 f
中午就不试了
3 F; U$ r( d1 E晚上回来在试试
% _2 ~+ B0 }% n) g) h' d谢谢版主!~厉害
 楼主| 发表于 2009-10-22 12:55:03 | 显示全部楼层 来自: 中国湖北十堰
本来想晚上回来在试试的
& O( U/ {, Y" w5 p但是现在不试睡不着
1 ~$ @+ ~' e4 Q" N; Q, _$ |8 ?! v, Y嘿嘿
  @& P) Z/ S' r; k6 V3 G+ S5 ?  }/ y. I  P
试了试
$ a" L/ K  D! U/ Q. F. n( g8 [谢谢版主   打开了那个文件9 Y; p& X- J7 O5 J4 I' Y  s( ]2 B
下面是代码& R! t6 b# }, X* v8 z; Y7 m
'Declare Function GS_MHDog Lib "win32dll.dll" (DogData As MH_DLL_PARA) As Long( r  q( ]* z/ d, K0 G: k) e
'Declare Function InstDrv Lib "RCMicroDogSetup.dll" Alias "InstDriver" (ByVal a As Integer) As Integer
4 O& R" N) Q6 F0 y1 H4 E# @/ A'Declare Function UninstDrv Lib "RCMicroDogSetup.dll" Alias "UninstallDriver" (ByVal a As Integer) As Integer
, c* l' [# p* M% v5 o6 q( G" Q'Declare Function GetDogDriverInfo Lib "RCMicroDogSetup.dll" () As Long
: a% A6 I% P" g6 Z! Y'Declare Sub DriverDialog Lib "RCMicroDogSetup.dll" ()
& k$ l5 V: R- f. Q% M/ a'Declare Function NotifyPullOutAndPlugInUsbDog Lib "RCMicroDogSetup.dll" (ByVal a As Integer) As Integer
: z3 ~7 P3 @9 ~2 W! l# g/ u/ G* i& V  [: D
'Declare Function yy Lib "jmcar.dll" () As Long
' i6 W$ f) K' J" w7 u5 d'Public xxx As New CAMZDSHXJ% F2 u" i- k5 H; {' p6 K. o4 c
Const SYNCHRONIZE = &H1000001 g1 J" D# ~0 f# P: f- z
Const INFINITE = &HFFFFFFFF
* s" N6 c3 f: d" v! f# Q( M+ rPrivate Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
, @  N" [# h  K0 ^! NPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long& a- B+ D) R  a6 r: Y
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
: T# @, F1 s; O, c. U" XPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
8 `2 Q: Z1 Y+ ~# x) D
* l. I7 l6 S; n1 i( wPublic Function getmac() As String. h+ V  O, [3 {) h- d, ^* S
Dim retval
# x6 `; T# c% Z8 }' x! ` Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变数
/ B; q; d6 Y9 p3 S! P Dim MYSTR, lstr As String1 K* Q2 h$ k% n# w' z; L/ |4 J/ Y+ l" [
If Dir("D:\cnc\hxj1.txt") = "" Then9 c3 r& U' \) l- g2 ~
  Else* W4 K9 h( T* j& U! {& q4 _
    Kill "d:\cnc\hxj1.txt "( k+ M/ u# V# d8 E5 r
  End If
3 _" ]1 i- f$ Y  pId = Shell("cmd /C ipconfig /all > D:\CNC\hxj1.txt ", 0) ' Shell 传回 Process Id
2 P# {  {% j) e$ `4 y* s. a  pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle
( G8 z% z! e0 P: W6 H$ O  If pHnd <> 0 Then$ F- |  M$ o; x" y- c( q. L; A
    Call WaitForSingleObject(pHnd, INFINITE) ' 无限等待,直到程序结束
, P: z0 _  E% o' z7 @% _    Call CloseHandle(pHnd). {" C1 l! K9 {& \1 f
  End If
( ^/ I2 l, @% g0 y/ I  C  Close. G; b' C# P3 R+ z
  Open "d:\cnc\hxj1.txt " For Input As #3
" f3 U6 u/ W) D5 H' }/ v  Do While Not EOF(3)
1 s5 v: b) B* S3 e; U    Line Input #3, lstr/ n- h# V! |" f$ H# a
    If InStr(lstr, "Physical Address") > 1 Then0 g, S5 V7 p7 j& @! _
      MYSTR = Split(lstr, ":", 2, 1)5 _# J+ J: P4 l) w" u; K
      getmac = MYSTR(1)* _& w/ @; Q5 a8 t) w( j$ Y/ `
      Exit Do
3 ~1 p  e& ]. ~0 s$ ]    End If
% D9 c  U7 D8 m# s2 ~) Q1 @0 u4 u   Loop
$ T3 H* }4 x& K+ k! ?  Close
3 N1 M( |/ R7 ]* w1 ^$ J( l6 b% R% V" _End Function8 C, B3 l/ E& K* O8 G; _
Public Sub DelDoubleALL()  '删除重复图素7 j$ I* z. `$ A% g' R# j" A
Dim i, j, k As Integer" j  i! r( Q. \" [% \. M3 Q, g
Dim ssetObj As AcadSelectionSet7 A9 R% O( b) O* X+ u. z9 L) H
Dim dege1 As Double, dege2 As Double
0 H" v2 p) c5 _% ?" p- Y Dim dege3 As Double, dege4 As Double
2 s: }2 M! M" _1 ~, h Dim pt1 As Variant, pt2 As Variant, Yuanr As Double, yuanr2 As Double
0 H2 O2 r4 Z' o  {+ p+ ~9 v Dim pt10 As Variant, pt20 As Variant, Yuanr1 As Double, t3 ]+ X/ f; ~' h! |
Dim ic As Integer; W  E7 @2 t# D1 I# H: D
Dim str1 As String, str2 As String, id1 As String, id2 As String
! }- {0 ?" h" F/ a' \2 _: J Dim EntName() As String, line1() As Variant, line2() As Variant
4 g5 _1 {6 R: c+ [( Z  }) i Dim line3() As Double: w7 R& d( d3 I1 E) `
Dim arc1() As Variant, arc2() As Double, arc3() As Double, arc4() As Double
* r! g- R  s7 A/ u( G. D Dim cir1() As Variant, cir2() As Double, blk1() As Variant
# m7 g& p7 t  j" x" K! r8 K Dim blk2() As String
4 Q- Z2 w  X; Y9 s4 x; Z" z' O0 S ic = ThisDrawing.SelectionSets.Count '选择集的个数4 W  E# B9 w2 W0 n0 R' }% {
If ic > 0 Then
3 M' ]' J* I. T- f7 h1 _    For i = ic - 1 To 0 Step -1
+ u3 J4 H- N; V, f# D: h        Set ssetObj = ThisDrawing.SelectionSets(i)$ V, p, Y( r6 z( Z: |5 K
        If ssetObj.Name = "SSSS" Then ssetObj.Delete '存在该选择集删除它
5 s, I, c3 E; Q8 v' i& i    Next
& a2 ]4 `; N- @8 Z+ y; S2 Z) `2 bEnd If
" K! u, t0 x6 _% D$ i( A    Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")  E& l/ O- D% A  @- f; k7 G
    ' Add objects to a selection set by prompting user to select on the screen+ @2 w/ K: y) S  G8 g
'    ssetObj.SelectOnScreen
& x6 a; s; @& h) t, z            ssetObj.Select acSelectionSetAll '把全部图形加入选择集
2 Z6 z0 b4 t% o) t" J$ A5 U1 M'            sele1.Select acSelectionSetAll, , , ft, fd  '层选择3 t4 {' R3 v4 g2 k, N
    On Error GoTo ccc1/ D. ^# h5 f- F1 ~/ O  A0 G( s
    ic = ssetObj.Count - 1# r! ?  J4 i$ |7 |
    If ic < 1 Then '选择集孔或图素小于2则退出* K0 q% l$ q. `0 w3 Z8 ]" u
     Exit Sub
8 B6 {! Q, @) c& i3 k' b    End If
# W6 a1 g; d/ `7 h/ M: z% |    ReDim EntName(0 To ic)
4 V3 h/ ~& ]1 R: b  n0 B    ReDim line1(0 To ic): ReDim line2(0 To ic): ReDim line3(0 To ic)  ^+ O) @" @, t- Q7 D
    ReDim arc1(0 To ic): ReDim arc2(0 To ic): ReDim arc3(0 To ic), r. d7 A! G% w
    ReDim arc4(0 To ic)
9 a" F/ w8 j! S! q6 G. N/ I    ReDim cir1(0 To ic): ReDim cir2(0 To ic)
* R# ]) l& D6 l+ r$ ?    ReDim blk1(0 To ic): ReDim blk2(0 To ic)
. `5 o3 z8 i* c. n& Q+ hWith ssetObj
8 D2 k* \  ]5 G( m* v    For i = 0 To ic
0 @5 g9 O- d; U2 A. b         EntName(i) = ssetObj.Item(i).ObjectName
1 [5 _/ o. R; E. I6 t/ r         Select Case EntName(i)
9 `5 U7 i/ L3 c! l* D          Case "AcDbLine", G! h; X5 A0 |7 X3 U7 w
           line1(i) = .Item(i).StartPoint
& r! k( q% D% V6 h- ]1 \% a% `6 X           line2(i) = .Item(i).EndPoint' E0 N- K1 z; W' L
           line3(i) = .Item(i).Angle5 ?! F+ ^& a; X& S7 W
          Case "AcDbCircle"
9 S5 m' G( t$ O1 V              cir1(i) = .Item(i).Center/ ~4 G- h% E; h0 b2 N1 M! Z6 a
              cir2(i) = Int(.Item(i).Radius * 1000) / 10001 p2 s, B, v9 `
          Case "AcDbArc"
9 `8 [. Z: Y$ [               arc1(i) = .Item(i).Center
9 G* U" z: u2 Q2 t( y2 }9 _% B7 J               arc2(i) = Int(.Item(i).StartAngle * 1000) / 1000
+ j4 D, m  X9 U, c3 t2 H6 @               arc3(i) = Int(.Item(i).EndAngle * 1000) / 10008 z5 D1 T9 N7 r2 d3 u" x
               arc4(i) = Int(.Item(i).Radius * 1000) / 10003 K& o) X3 _7 I. t; ^$ n: S
          Case "AcDbBlockReference"" A3 A0 t- [# T9 F6 `
              blk1(i) = .Item(i).InsertionPoint
5 P' K+ Q. n" d7 p8 f8 G3 D              blk2(i) = .Item(i).Name0 b. n  |. g' ]7 q/ }: u
          End Select
+ X3 M% W7 Q6 M6 ?; C         
: T3 ]- S7 m9 R2 q% B    Next i
; u: A7 Q, W$ a' ]
- O/ z" q7 B4 p$ [' M For i = 0 To ic - 1
( b. V* \$ a4 Z, [6 A# h    id1 = EntName(i)0 ~( V, N* g: b: t  D( x2 \
   For j = i + 1 To ic4 W, @7 X, F. s0 P: V. B9 Y8 `' B
      id2 = EntName(j)
& A5 I. H4 n3 b) L3 w: W! m! v     If id1 = id2 Then6 z) V4 b) y# m9 Y7 x
       Select Case id1
+ Q5 j3 ?) ?0 {          Case "AcDbLine". f/ @1 `! ^3 h. N* L
            pt1 = line1(i)# G+ J6 U8 a1 J  R8 i# f
            pt2 = line2(i)# u5 I( {9 f; w" l/ `
            dege1 = line3(i)
( R: s# L: ]. U( I$ T$ @* }            pt10 = line1(j)
% K6 z/ a7 S1 A' D6 E            pt20 = line2(j)  W0 v  s3 j# L: p- U% I+ M$ y; j
            dege2 = line3(j), _& A% Z& {# ?  u* w1 H
            If Abs(pt1(0) - pt10(0)) < 0.01 And Abs(pt1(1) - pt10(1)) < 0.01 And _; I$ F* A) T/ K1 [/ f( _3 }
            Abs(pt2(0) - pt20(0)) < 0.01 And Abs(pt2(1) - pt20(1)) < 0.01 Then
5 _7 Q5 [% w$ F& I  i; _7 f; m               .Item(i).Delete
& A/ p- n3 r1 x$ ~9 U1 U% j               Exit For
2 |0 l. w( A0 g# Q% C& p9 C( z            End If  A, s  r- y  B0 Q' m. v" t# Z/ C
            If Int(Abs(dege1 - dege2) * 10000 + 0.5) / 10000 = 3.1416 Then
/ Z7 V0 X5 }* J) M% z) ~                If Abs(pt1(0) - pt20(0)) < 0.01 And Abs(pt1(1) - pt20(1)) < 0.01 And _% \/ e% o9 P$ A9 z# a/ U
                Abs(pt2(0) - pt10(0)) < 0.01 And Abs(pt2(1) - pt10(1)) < 0.01 Then
. r7 b# F4 a1 u$ b0 V                   .Item(i).Delete
- w0 N$ l+ a, m! e; \6 B' ^                   Exit For
, r; M  U/ _& b; P                End If: e- t6 S1 |* Y) u+ H6 U! W
            End If
" P4 _: n$ j3 P. w# B- Q          Case "AcDbCircle"
' e3 d; L* b1 M! O0 v            pt1 = cir1(i)
" h% v2 J; `6 }- c1 \3 |            Yuanr = cir2(i)
8 k  c# T2 u! x1 z- R            pt2 = cir1(j)
" m# |8 D" G- o/ P% Y            yuanr2 = cir2(j)" j; v/ i- h" T
            If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 0.01 And Yuanr = yuanr2 Then2 v2 e- W3 e9 i1 v1 l. E
               .Item(i).Delete
& \7 L3 L8 C7 k& d0 j               Exit For
) O- o2 Q" Q0 s: v! w             Else
, L7 l* x0 J1 f. G               If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 8 Then
8 k- s5 ^% C. N- `: Z( c. }                  .Item(i).color = acGreen
+ m: a# n  I, o; s% @1 q               End If7 M$ M/ p2 l1 W6 P& _, j4 `, z4 `3 d4 b' p
            End If
! P6 C3 @% P( T- e  X3 |- [          Case "AcDbArc"
/ f) Q/ h2 X0 R# k- f. T( z            pt1 = arc1(i)
/ Q4 N, a  L1 l( G) b% J            dege1 = arc2(i); g  S- z5 n" b( c
            dege2 = arc3(i)
: J8 R1 f" a% x  p0 U3 X, r            Yuanr = arc4(i)
. W4 h' v" R! i9 B1 {            pt2 = arc1(j)4 P+ d$ m. @+ }' S1 b: \" i
            dege3 = arc2(j)! ?. T: m( ]$ p+ F7 ]
            dege4 = arc3(j)
4 i6 a$ [/ ^/ s3 W) M7 L- [# Y0 F            yuanr2 = arc4(j)
6 V6 \+ M$ i' B8 f9 B* s. V1 L6 ^            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And Yuanr = yuanr2 _
$ F+ m3 k; n& O( q3 }            And dege1 = dege3 And dege2 = dege4 Then
, @7 \0 ^. T* u               .Item(i).Delete
' @7 I- Q, a1 a. B               Exit For9 M5 g, c2 _" |6 Z6 t3 j+ [2 H1 R
            End If6 R. G0 M, J- V: G' B
         Case "AcDbBlockReference"
! Q9 U% Y. q, r6 B7 y0 n" Z            pt1 = blk1(i)
# V' A$ G3 L" I8 J) e            str1 = blk2(i)
( c* Y8 m; w% Y9 _  }7 e            pt2 = blk1(j)
' x% n7 @. W5 v4 A) b            str2 = blk2(j)3 W6 l! f' [; l5 W" j
            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And _# I6 n9 ]8 |1 Y7 q: t
            Trim(str1) = Trim(str2) Then
- s0 W+ k4 U# W9 A1 ?; g               .Item(i).Delete
0 c- r2 K7 n3 Z9 k, M               Exit For  v0 Z; E* `) e! G/ p
            End If. V0 j% q. Q) x' V
        End Select5 x. M/ X- ^5 a7 H
      End If# r8 y2 J4 n& p
    Next j
( S% K: X/ |0 K' I  Next i
7 M/ r2 I: g0 u) f  End With1 [) d* Y! g. V$ }/ k3 I& r
'  MsgBox "删除重复完成!"
( p6 i$ J$ k2 r0 p   GoTo ccc2) H4 Z8 M9 ^( r5 R# w0 v, N( k, f( y
ccc1:  MsgBox "有错!!!"
. a9 ]" c. D2 R) uccc2:     'ssetObj.Delete1 H. R! g/ a2 q; ~6 D4 |/ X

" T- {! r2 p( {8 E, s1 _  c End Sub& X) r- j) y1 _4 q7 i( w2 s

% B* m7 d' s0 p) M Public Function Clamp100(a1 As Double) As Double   '判断块存在不存在,存在=100,不存在=0
5 B. W& F4 o$ a% \! A2 y/ G( G& Z    Dim p1(0 To 2) As Double '交叉选择的左下角点
! ]2 o8 G' s. D6 `8 J    Dim p2(0 To 2) As Double '交叉选择的右上角点) b; T  Z3 _+ P! J
    Dim ssetObj As AcadSelectionSet
8 Q- [( Q8 j2 r0 d/ D$ P    Dim ic As Integer, j As Integer
; r% I4 `8 u; s! y! \+ @        ThisDrawing.SelectionSets("SSSS").Delete
7 y! C/ z' _1 L3 U: v( [2 v' j5 T        Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")* p, i1 A* L1 V' |; J
        p1(0) = a1 - 15: p1(1) = -25: p1(2) = 0
- t$ i, T: A7 m$ M! b9 X. a        p2(0) = a1 + 15: p2(1) = -5: p2(2) = 0
; b0 h/ s" q+ H) P- [1 F        ssetObj.Select acSelectionSetWindow, p1, p2
: ?% Q. O) G: a9 ^6 |4 }        For j = 0 To ssetObj.Count - 12 }5 X  N7 j4 Q1 W6 n% D* G6 A
         ssetObj.Item(j).color = acGreen
) ~+ C' F2 w; z1 _; F          ssetObj.Item(j).Update( |2 b& x# ^6 |( \9 [% [
        Next j
" G" R. c& p; c        Clamp100 = ssetObj.Count
+ p7 W3 c0 q5 d- G$ @6 n2 x, z1 s& CEnd Function2 w0 @, |* X5 o* ]% O' P
5 `# j. r- c4 @
/ m, M3 u2 o8 f" m
" {7 p* ?; O8 H, m' U- a
. q0 L* `+ m( R1 g
看不太懂 不过   我在这里多学学  应该没问题的  嘿嘿
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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