QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
问题1.为什么在百度搜出来的VBA 都是用OFFICE的Excel 里的宏打开》??  |! q. _# x: v5 h5 g5 V
          我去试过了   大不开7 [, H4 O( g. F
          然后用AUTOCAD里的宏可以打开       不过需要密码
- V: P6 m; C/ r' U" i$ W问题2.怎么样可以CrackVBA的密码?有没有什么工具?(我现在要打开的VBA是我们公司一台数控冲床的CAD转换出NC程序的一个插件,不过里面设计有点不合理    我想修改它)
- e7 x: B( T6 |0 F请哪位高手帮帮忙
发表于 2009-10-20 15:54:16 | 显示全部楼层 来自: 中国
一、很多大型工具软件都有VBA,比如WORD、EXCEL、AutoCAD。VBA的全称是Visual Basic for Applications,这是微软开发的面向应用程序的VB编程开发环境,通俗点说就是VB框架搭配上应用程序内核。所以EXCEL的VBA和AutoCAD的VBA是不一样的。
; k7 T  E* [4 ]$ m" y. r二、VBA密码Crack,下载附件并按说明操作。
. Z6 W; Z/ |2 q- Q" D VBA.rar (1.19 MB, 下载次数: 13)

评分

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

查看全部评分

发表于 2009-10-20 16:46:56 | 显示全部楼层 来自: 中国河北石家庄
老师真是高手,几乎没有不懂的问题。
 楼主| 发表于 2009-10-22 12:43:34 | 显示全部楼层 来自: 中国湖北十堰
谢谢版主!~   懂了! u9 d# X; z. D, W& V
附件我下了   希望可以解密码
+ t* E: A8 u& u* k中午就不试了
; c5 I! B6 u% B' m) d5 V/ c; }晚上回来在试试. b0 ~& l$ g9 O- N, M" W, G2 S
谢谢版主!~厉害
 楼主| 发表于 2009-10-22 12:55:03 | 显示全部楼层 来自: 中国湖北十堰
本来想晚上回来在试试的
# t2 H  |( C4 @但是现在不试睡不着
5 @: c9 G+ Q" v8 y& M嘿嘿0 D* q9 `. o7 v0 ~- l( C

. g$ B9 [; \5 w9 V) D9 U% [试了试
% u3 ]" @; C# r* g5 O/ A/ W谢谢版主   打开了那个文件
6 s* u! ^1 w8 Q! M9 O/ K下面是代码0 O% Y+ G2 l/ L( Z' {- p
'Declare Function GS_MHDog Lib "win32dll.dll" (DogData As MH_DLL_PARA) As Long
* c0 }+ a5 z" _. N. I  z'Declare Function InstDrv Lib "RCMicroDogSetup.dll" Alias "InstDriver" (ByVal a As Integer) As Integer
4 r0 o1 u% h& Y'Declare Function UninstDrv Lib "RCMicroDogSetup.dll" Alias "UninstallDriver" (ByVal a As Integer) As Integer" J5 [; A  g3 }9 e5 C- c7 C: P
'Declare Function GetDogDriverInfo Lib "RCMicroDogSetup.dll" () As Long* z# @6 @' {, `8 Y" F9 K! n4 T( S
'Declare Sub DriverDialog Lib "RCMicroDogSetup.dll" (); Z  f9 m; d2 M! ^4 z6 a/ l
'Declare Function NotifyPullOutAndPlugInUsbDog Lib "RCMicroDogSetup.dll" (ByVal a As Integer) As Integer! W$ h$ q: s5 A! {6 T+ M( \2 H  ^
* z  T2 c. o1 U  i& h
'Declare Function yy Lib "jmcar.dll" () As Long
, j9 J# F  N* {. H+ a7 |* D'Public xxx As New CAMZDSHXJ
4 N7 \2 @& D& E) E' Y4 GConst SYNCHRONIZE = &H100000
6 Y$ N7 a2 S' Z8 d0 a2 Q0 HConst INFINITE = &HFFFFFFFF7 _6 l1 N6 g1 ]+ }& E1 b" @
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
! e' u; ]- O) g, ZPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long5 {3 b6 D- e' Q. d2 {
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long: x6 W1 f8 O6 c+ r; B7 D/ q
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long/ w3 R" }9 `' i
/ h* X" r! z1 n# J' b
Public Function getmac() As String
" M9 I( M) y0 ~2 L* }9 k Dim retval
+ P  Y. J( b; e: X; X8 l2 C Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变数
$ d7 w5 x2 q/ V' o0 B% J Dim MYSTR, lstr As String$ @+ E1 Z) H  J8 V' F1 z
If Dir("D:\cnc\hxj1.txt") = "" Then/ V2 c7 j4 Z" k- U& k
  Else
; {7 M* J* g+ h4 T$ B; O% f    Kill "d:\cnc\hxj1.txt "1 q' t! n; [0 U" k
  End If, B+ }( m1 T* F" m; k. L- x
  pId = Shell("cmd /C ipconfig /all > D:\CNC\hxj1.txt ", 0) ' Shell 传回 Process Id
6 k7 [* W# _! h9 W3 H  pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle* S0 E& L8 ?% [) z$ K
  If pHnd <> 0 Then
+ V2 v" D! X1 \8 Y6 M0 n9 a    Call WaitForSingleObject(pHnd, INFINITE) ' 无限等待,直到程序结束
3 `! j; H1 w9 p. t" v6 |, E( {    Call CloseHandle(pHnd)
" O8 d3 \- z& D3 o% n3 Y: r/ A  End If
( r$ m7 ~' J( D  ]  Close  X8 P; v$ l. Q" N4 `7 y
  Open "d:\cnc\hxj1.txt " For Input As #3
2 L( i7 Z+ G% `  Do While Not EOF(3)
: X1 o/ Y' ?' c9 G/ s/ X) L9 C    Line Input #3, lstr+ u6 v$ X5 o1 q4 |' S
    If InStr(lstr, "Physical Address") > 1 Then4 t  f1 k. _, q5 w- ?' M
      MYSTR = Split(lstr, ":", 2, 1)
% H! u; [$ W( J' o; a7 }      getmac = MYSTR(1)
  e$ I# g. o2 ~0 v1 e      Exit Do0 ?$ ?" Z3 O6 r9 }" Z% M/ ]: D# C
    End If9 a, ^% C# K+ p, Y; v$ q6 G3 u
   Loop( R) s! t8 l" V6 u! V% V1 \6 X
  Close
' V8 n* ^1 g5 HEnd Function# U. w/ X' B6 V9 t* L5 s
Public Sub DelDoubleALL()  '删除重复图素
( B5 y  z2 i8 K# w. D4 S: {. G/ y! r Dim i, j, k As Integer; p& g3 m; U! w5 _
Dim ssetObj As AcadSelectionSet
) f! R8 V5 U! K" w+ N# ~; E Dim dege1 As Double, dege2 As Double2 l( w2 i" x% R& e1 U
Dim dege3 As Double, dege4 As Double6 w3 t4 f8 N! q" V
Dim pt1 As Variant, pt2 As Variant, Yuanr As Double, yuanr2 As Double
3 K1 p  }" g8 X; ~ Dim pt10 As Variant, pt20 As Variant, Yuanr1 As Double# a9 ^, ~, W. b' O& H
Dim ic As Integer% }* F1 v) @5 q6 A6 X
Dim str1 As String, str2 As String, id1 As String, id2 As String
, k5 `" ]) l) O! p Dim EntName() As String, line1() As Variant, line2() As Variant: b2 U. J# B: l& r
Dim line3() As Double2 H, C: \/ N3 N7 {9 M) L) H0 q* W
Dim arc1() As Variant, arc2() As Double, arc3() As Double, arc4() As Double/ ]  Q9 c/ o' U) N
Dim cir1() As Variant, cir2() As Double, blk1() As Variant
0 \" ?! p9 h% B0 O9 O Dim blk2() As String% y; n7 v, |$ G
ic = ThisDrawing.SelectionSets.Count '选择集的个数; q: p7 [9 X; h0 P
If ic > 0 Then) b4 s( W; m3 ~! P
    For i = ic - 1 To 0 Step -1
, C! B- R+ B8 O: m# e        Set ssetObj = ThisDrawing.SelectionSets(i)
3 H" n: ]: q3 J" E  L' d        If ssetObj.Name = "SSSS" Then ssetObj.Delete '存在该选择集删除它
8 u: _! |, A% j- M8 {    Next9 C' N1 l- N9 l2 b) @3 C
End If) u. }: B- J# b0 j) {
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
/ Z4 w7 ~, \/ T( y/ C, ~2 a, N    ' Add objects to a selection set by prompting user to select on the screen
1 q: o6 i. [; h6 ?7 N) x- ^'    ssetObj.SelectOnScreen
4 f1 z! I% t8 p% e% c9 s            ssetObj.Select acSelectionSetAll '把全部图形加入选择集3 `7 X- r, W6 u8 J4 ^' I
'            sele1.Select acSelectionSetAll, , , ft, fd  '层选择
4 Q, @& y" V- k' _1 L    On Error GoTo ccc1, L4 j. C; W) U6 E
    ic = ssetObj.Count - 1
$ |2 j$ _# x$ r    If ic < 1 Then '选择集孔或图素小于2则退出
) x: @" P4 X( f     Exit Sub
# S4 b9 E' v3 g7 a+ R$ v    End If
9 M" Q3 s& ^0 K2 v    ReDim EntName(0 To ic)' E1 ^% P8 X$ G* N! p: n* R) P
    ReDim line1(0 To ic): ReDim line2(0 To ic): ReDim line3(0 To ic)
! r) g* S6 P; a% X    ReDim arc1(0 To ic): ReDim arc2(0 To ic): ReDim arc3(0 To ic)+ \3 w$ f9 w  r2 N& a) Z7 n1 ~
    ReDim arc4(0 To ic)/ V' e( ~) @8 j, P4 w
    ReDim cir1(0 To ic): ReDim cir2(0 To ic)' [- p9 u/ N! |
    ReDim blk1(0 To ic): ReDim blk2(0 To ic)
$ a! p* H4 n( LWith ssetObj6 }5 ?0 u! q* M3 x( L8 P
    For i = 0 To ic0 p) ~, L4 q" ~& K
         EntName(i) = ssetObj.Item(i).ObjectName
+ R& b" S. `; \% q3 U' ?         Select Case EntName(i)
; S/ `7 R1 k/ N$ N" |; W3 i          Case "AcDbLine"! O0 l% L/ e/ }
           line1(i) = .Item(i).StartPoint
( D  [% V, s3 B5 {. _( K           line2(i) = .Item(i).EndPoint* `" N- }: |5 U* S9 W0 a
           line3(i) = .Item(i).Angle3 R9 _  a! a9 |
          Case "AcDbCircle"
  j1 a+ j$ r* C& |              cir1(i) = .Item(i).Center+ i/ m) l- N# i  V
              cir2(i) = Int(.Item(i).Radius * 1000) / 1000! z1 d6 z! r6 \) j
          Case "AcDbArc"
1 u! l8 _& j& E6 j: Z% e+ a               arc1(i) = .Item(i).Center
, ^2 Y1 ~+ `1 x3 t! a  ]               arc2(i) = Int(.Item(i).StartAngle * 1000) / 1000( S& f9 b: t( \4 }5 i
               arc3(i) = Int(.Item(i).EndAngle * 1000) / 1000
3 b8 {+ f! K  L6 o# B               arc4(i) = Int(.Item(i).Radius * 1000) / 1000; Q4 i" I* @  X. u7 T; H
          Case "AcDbBlockReference"
8 j8 ]* G( ]) t+ g, J* j              blk1(i) = .Item(i).InsertionPoint2 h: U$ b0 @( B2 X: N
              blk2(i) = .Item(i).Name
2 z8 x3 U$ d9 s, C+ s& I          End Select
, c: S9 H. C7 L  ~: h1 O7 N         7 g1 Z+ Y# C7 S* V6 v
    Next i
1 h# P' `  a) D* ~& G" S& w
. e2 b3 G' V9 E7 A For i = 0 To ic - 13 I$ X$ ^- U, O
    id1 = EntName(i)8 u" Y2 y9 e* I3 ~
   For j = i + 1 To ic. i2 b. J8 v+ \2 K- o
      id2 = EntName(j)
) @% m5 N( Z4 i     If id1 = id2 Then
& q8 Y3 D* p2 t- C$ C       Select Case id1: l3 Z/ }% U2 L9 g+ h  M; n
          Case "AcDbLine"
6 j5 J- K! Q) T' a            pt1 = line1(i)7 w' w/ I: y: |3 V) u) L' X4 x
            pt2 = line2(i)
$ v( v% c$ j# T6 U            dege1 = line3(i)
! X3 m. n, o5 o7 F. D4 `5 h3 k& u! Y$ P            pt10 = line1(j)  ?! w- @# A+ o0 Y
            pt20 = line2(j), z) @1 k( R" j* k9 i* A5 ?, V
            dege2 = line3(j)* x. Q4 i# Y8 z7 _- E) `
            If Abs(pt1(0) - pt10(0)) < 0.01 And Abs(pt1(1) - pt10(1)) < 0.01 And _
$ `. z9 f8 L1 W            Abs(pt2(0) - pt20(0)) < 0.01 And Abs(pt2(1) - pt20(1)) < 0.01 Then$ R$ @) ]/ k) S+ R! j8 ]. p
               .Item(i).Delete
5 B) \: v% y- z* ?9 [               Exit For8 l& {$ V* O" \, T
            End If
2 F4 r+ P6 `* ~. p7 s) @            If Int(Abs(dege1 - dege2) * 10000 + 0.5) / 10000 = 3.1416 Then/ ?* I% E7 Y1 d7 z1 b& p
                If Abs(pt1(0) - pt20(0)) < 0.01 And Abs(pt1(1) - pt20(1)) < 0.01 And _
* M4 K1 ^! j! r8 e                Abs(pt2(0) - pt10(0)) < 0.01 And Abs(pt2(1) - pt10(1)) < 0.01 Then  c( {7 {" }8 T
                   .Item(i).Delete: L6 E2 x- N: ^1 h/ A; _: e8 `3 t
                   Exit For
) u: |# ~. a# d7 j                End If
  X3 i- o+ I) a4 O* K            End If- @6 r* t  t3 `& M# I
          Case "AcDbCircle"
3 o7 x0 d. P# T+ ^- ?* o8 Y. j  _            pt1 = cir1(i)5 h8 A* T) o! T
            Yuanr = cir2(i); b* v, B7 E$ u8 w2 ?
            pt2 = cir1(j)) G! n/ @) c+ N6 K& E3 \+ B: w5 Q# H
            yuanr2 = cir2(j)6 _& t2 }* i' f" M1 j" @) r# K6 J
            If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 0.01 And Yuanr = yuanr2 Then
7 g9 I' ?4 Y! k( v- ?8 t8 ~0 w. A               .Item(i).Delete
! W* M- Q2 @" V8 y               Exit For. T, ~, [( A+ g* G3 Y0 @
             Else
; k3 M, X% T) c; f' W6 b               If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 8 Then( R0 O  ^7 X8 j
                  .Item(i).color = acGreen4 C1 D' t6 b- [0 g
               End If1 L  r  q( E: n6 r
            End If8 ^8 d4 R. P# D& @
          Case "AcDbArc"
7 ?! f6 |' R6 ~- O* T+ Z' S4 a4 _            pt1 = arc1(i)' P! N0 S8 u# p# A( F1 J& X; T
            dege1 = arc2(i)
' I3 j, A% o6 J* f1 s% q            dege2 = arc3(i)
9 |/ x' d4 [1 `& c4 K" y+ k" _3 j0 N            Yuanr = arc4(i)4 U- g& x. l; C
            pt2 = arc1(j)
9 K+ T" |3 Z1 {6 I! W4 O4 f            dege3 = arc2(j)
# a/ q, N+ Q  U, d' ^" K            dege4 = arc3(j)
- f, E+ G8 @( ?9 V3 h            yuanr2 = arc4(j)
% w2 ~# X4 P) t. n. g! o  A+ N            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And Yuanr = yuanr2 _
' e+ O6 Y; }% R% ]            And dege1 = dege3 And dege2 = dege4 Then
( \( L9 K4 s6 r6 |               .Item(i).Delete
+ _2 B. `( \; R2 r               Exit For
4 X8 Z1 ~: T7 Z- h            End If
( x+ w" r" u- [# }' L         Case "AcDbBlockReference"/ Z9 s/ @$ I) [. p* W+ v% r
            pt1 = blk1(i)
$ b2 O1 G( g! u            str1 = blk2(i)
2 r! f: Q, ~7 e3 P            pt2 = blk1(j); }# x! i/ b  R( B- @
            str2 = blk2(j). {6 ]9 l* w; V/ j7 A
            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And _
1 |2 e  X* C5 v+ f' ?5 ^+ j3 G4 B  I  N; ?            Trim(str1) = Trim(str2) Then; J; W2 ]. y$ Z5 `
               .Item(i).Delete! x% I. R' A  ]4 g3 g/ O% ^
               Exit For( Q! w- d' |$ r$ p7 m4 I
            End If# ]' D& [/ [" M) b! }! `
        End Select
) d8 T, p/ l" J7 `: `) h      End If& j& S5 ~" f6 W: d$ J; `/ _  ^. h
    Next j7 d5 a( b9 r& `9 v
  Next i
. m9 f2 c$ I$ K" V/ W. s! g  End With5 i# i0 o, C& ~! s. _
'  MsgBox "删除重复完成!"& g6 D% t  `5 Q2 ?9 u
   GoTo ccc2& h! o+ V1 y& E1 u0 j
ccc1:  MsgBox "有错!!!"
, ~$ g8 E+ |9 Bccc2:     'ssetObj.Delete- `: w# d( X1 t4 k
3 E' f: o& _! ?5 i$ K5 ~
End Sub
  h' ~0 b, L; i% R1 p# X6 E* C) f. @, _9 f9 Q
Public Function Clamp100(a1 As Double) As Double   '判断块存在不存在,存在=100,不存在=0
, L2 i% v1 s# Q# G* p# l7 s    Dim p1(0 To 2) As Double '交叉选择的左下角点1 V" [2 ?7 q& g* K+ k/ p
    Dim p2(0 To 2) As Double '交叉选择的右上角点
' D: u  h4 m. H# m    Dim ssetObj As AcadSelectionSet
  b5 \0 x" N- Q4 `3 {; s+ O/ D    Dim ic As Integer, j As Integer( l& c6 T* x/ l
        ThisDrawing.SelectionSets("SSSS").Delete4 U/ u3 \5 K) z1 h' a
        Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
9 H4 u/ T5 b  I5 Y) ^. s* o        p1(0) = a1 - 15: p1(1) = -25: p1(2) = 0: ?. _. }; ]; D4 d/ Z5 L! m
        p2(0) = a1 + 15: p2(1) = -5: p2(2) = 0  W& X! d) R' P) Y) C& o
        ssetObj.Select acSelectionSetWindow, p1, p2
- M8 ~, [/ w! w6 V        For j = 0 To ssetObj.Count - 1
6 P# W% x9 b- z" X4 u) k$ }2 M& S& _4 P% Q         ssetObj.Item(j).color = acGreen' v0 d  v2 m  K4 a- ?
          ssetObj.Item(j).Update
% ?2 a( L9 Y8 v& d6 Y        Next j
: f7 y* a! p3 ^/ `# n3 t        Clamp100 = ssetObj.Count
( |/ ]% d/ B5 {' D6 WEnd Function
$ z3 s0 D# P: M0 S7 q' W  H$ q2 E0 Y  h, ?+ B' Z- S
$ r* i6 y$ Z* v1 ^

  |- O5 A4 @4 O* {1 ]7 L& v* V, e$ i" m4 L4 O+ b; v0 N) c
看不太懂 不过   我在这里多学学  应该没问题的  嘿嘿
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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