QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
问题1.为什么在百度搜出来的VBA 都是用OFFICE的Excel 里的宏打开》??8 R- U  {& r* b. U& q8 h
          我去试过了   大不开
% F0 k+ i2 q2 R; Z/ ?1 s  N8 O          然后用AUTOCAD里的宏可以打开       不过需要密码7 T  t) ]* W0 o+ f8 E
问题2.怎么样可以CrackVBA的密码?有没有什么工具?(我现在要打开的VBA是我们公司一台数控冲床的CAD转换出NC程序的一个插件,不过里面设计有点不合理    我想修改它)) x- r7 C" P! A
请哪位高手帮帮忙
发表于 2009-10-20 15:54:16 | 显示全部楼层 来自: 中国
一、很多大型工具软件都有VBA,比如WORD、EXCEL、AutoCAD。VBA的全称是Visual Basic for Applications,这是微软开发的面向应用程序的VB编程开发环境,通俗点说就是VB框架搭配上应用程序内核。所以EXCEL的VBA和AutoCAD的VBA是不一样的。, F0 d; r# m) c7 \" Q, I( ~% `
二、VBA密码Crack,下载附件并按说明操作。
/ H, s+ d* C( b: B5 j6 } VBA.rar (1.19 MB, 下载次数: 13)

评分

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

查看全部评分

发表于 2009-10-20 16:46:56 | 显示全部楼层 来自: 中国河北石家庄
老师真是高手,几乎没有不懂的问题。
 楼主| 发表于 2009-10-22 12:43:34 | 显示全部楼层 来自: 中国湖北十堰
谢谢版主!~   懂了
' V/ B+ [$ I7 C! [$ f附件我下了   希望可以解密码
& @1 t% @2 I. d! l, h中午就不试了
9 j: o7 s' }( _7 q. r晚上回来在试试5 q6 q% b3 @- B" V
谢谢版主!~厉害
 楼主| 发表于 2009-10-22 12:55:03 | 显示全部楼层 来自: 中国湖北十堰
本来想晚上回来在试试的
" M7 a0 {" c3 P7 Q4 l+ y但是现在不试睡不着 5 |# y& b& f" w1 l6 _1 l3 R
嘿嘿
1 z( i5 z0 v- |7 v5 B' D; P9 {' f7 O( z" J8 d
试了试+ [0 e2 b. S- w3 K& h, o4 m+ V' P+ L' H
谢谢版主   打开了那个文件) X4 |: }3 H4 A7 \
下面是代码
6 j1 I1 l0 E' O* k" f1 s'Declare Function GS_MHDog Lib "win32dll.dll" (DogData As MH_DLL_PARA) As Long0 @# N& Q9 h, a
'Declare Function InstDrv Lib "RCMicroDogSetup.dll" Alias "InstDriver" (ByVal a As Integer) As Integer" m$ F% ], W+ J
'Declare Function UninstDrv Lib "RCMicroDogSetup.dll" Alias "UninstallDriver" (ByVal a As Integer) As Integer
- N7 ]7 }7 K$ Q4 q'Declare Function GetDogDriverInfo Lib "RCMicroDogSetup.dll" () As Long* K5 L7 _% T$ Z2 H9 A, T8 p$ I
'Declare Sub DriverDialog Lib "RCMicroDogSetup.dll" ()
$ i7 \' ^% j3 n% q/ T% |; \3 R! }'Declare Function NotifyPullOutAndPlugInUsbDog Lib "RCMicroDogSetup.dll" (ByVal a As Integer) As Integer
5 D$ \) P. P2 s9 a2 c  b5 E1 `: C4 J
'Declare Function yy Lib "jmcar.dll" () As Long8 R& C1 A1 A+ H
'Public xxx As New CAMZDSHXJ
8 Q: o4 N" Q, i0 i, HConst SYNCHRONIZE = &H100000. E- L  F7 W- Y8 f, r* g. W
Const INFINITE = &HFFFFFFFF
" o# h2 M3 E7 ?7 ^  dPrivate Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long1 g5 X; f6 D! q# J+ B6 {
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long; B2 e; z& O( D& z" N4 D# w3 \
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
) O* D6 K/ u  d; b# r1 Y% i( SPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long6 y; S) ~9 G8 N, M( |
& b0 B2 w" o, k
Public Function getmac() As String8 ]( b+ ?! A+ d% Z( P
Dim retval
; B' [6 l/ C- _, k4 G Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变数
' \. _, Y5 F$ G6 y5 M4 t8 a Dim MYSTR, lstr As String4 `2 \  s) o3 @  d& m& X, q' R5 P
If Dir("D:\cnc\hxj1.txt") = "" Then
% J6 S. r$ I4 b7 h" _4 g  Else& Z9 P' w4 w& P& d5 z* t
    Kill "d:\cnc\hxj1.txt "
! f2 L  w3 U; w  End If9 a# S: V- _1 Y
  pId = Shell("cmd /C ipconfig /all > D:\CNC\hxj1.txt ", 0) ' Shell 传回 Process Id
8 x$ A6 V/ V1 [  pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle/ @; X) J' l( J7 n% A
  If pHnd <> 0 Then
* [7 T2 b" a6 h( W! U# Y    Call WaitForSingleObject(pHnd, INFINITE) ' 无限等待,直到程序结束0 \0 e% s' N2 \; N2 w' n+ c
    Call CloseHandle(pHnd)
* g1 H  S" `" L* ~, f+ b- i  End If
: K$ u, B; Z$ G7 Z6 _  M  Close
9 d; t, b6 \3 q0 ?0 Z# K: \4 A4 \  Open "d:\cnc\hxj1.txt " For Input As #3
' {# v- m8 P" d) N5 {8 B- O  Do While Not EOF(3)
# c3 g. w1 a+ u8 q' f6 Y' W    Line Input #3, lstr/ \( O& U% l" A
    If InStr(lstr, "Physical Address") > 1 Then) E# C8 ~/ |* I
      MYSTR = Split(lstr, ":", 2, 1): `0 A! f3 M# T
      getmac = MYSTR(1)4 J, Z6 r5 Y0 Q  i7 q4 w% D# f
      Exit Do
% |/ \$ h# t6 d0 M    End If9 h2 h& ?) Q, B8 g. C6 ~
   Loop
' T7 x1 ^, Q1 ]* ]3 ?  Close6 F/ I3 V* I  R3 A# v, |, A0 P' y
End Function( }1 u9 r1 I2 g1 F/ P% N) u6 z
Public Sub DelDoubleALL()  '删除重复图素
5 h% X- R+ R4 r- N6 C- ^- X- s Dim i, j, k As Integer
; i- Y3 s+ u  {' O* l# F Dim ssetObj As AcadSelectionSet- ^) u+ T9 A& S# v( u+ k
Dim dege1 As Double, dege2 As Double
& P4 ^7 B$ k# J! g5 w Dim dege3 As Double, dege4 As Double
! e: K3 _5 W9 N8 w0 s! Q Dim pt1 As Variant, pt2 As Variant, Yuanr As Double, yuanr2 As Double
3 ~' l' B1 V3 O Dim pt10 As Variant, pt20 As Variant, Yuanr1 As Double  Y6 [# W) N: \+ f5 _- Z/ s1 r
Dim ic As Integer
0 G8 {/ b5 f( _# ~0 f5 w Dim str1 As String, str2 As String, id1 As String, id2 As String) x0 V$ ~5 s2 D* [3 t  T
Dim EntName() As String, line1() As Variant, line2() As Variant1 I! U+ _( g9 a, x6 Y
Dim line3() As Double
1 m2 }: u0 Z4 p$ }6 F8 K5 A Dim arc1() As Variant, arc2() As Double, arc3() As Double, arc4() As Double
' W, H0 h8 B$ x  G3 A Dim cir1() As Variant, cir2() As Double, blk1() As Variant
5 r; E" U" ^& c% l) Y Dim blk2() As String
  w$ R4 l8 |# q, ]/ k& O  ]6 j! e7 [ ic = ThisDrawing.SelectionSets.Count '选择集的个数- e/ ]" d/ ^; R% c" R5 b- |
If ic > 0 Then9 Z3 h# R2 {5 \' N8 e- {0 P: _
    For i = ic - 1 To 0 Step -1# o& p# U% n& b# |( r6 y6 _
        Set ssetObj = ThisDrawing.SelectionSets(i)
9 N" V" ~5 i( A        If ssetObj.Name = "SSSS" Then ssetObj.Delete '存在该选择集删除它
% W+ w/ c. d8 y5 B1 [    Next
; [4 Q1 M: W- p, jEnd If$ c8 S: P3 ^; r) K
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS"); ^% a4 |# w1 z3 {2 z
    ' Add objects to a selection set by prompting user to select on the screen4 v+ D$ T6 C+ o* Y
'    ssetObj.SelectOnScreen
6 d6 E  q+ q: f' h4 I* [' S            ssetObj.Select acSelectionSetAll '把全部图形加入选择集  t* ]6 P; L6 {; V7 p1 i* }, Z
'            sele1.Select acSelectionSetAll, , , ft, fd  '层选择
5 ^$ t/ r# E0 ~6 a    On Error GoTo ccc14 _5 ~4 D4 {: ~6 ~! @( `
    ic = ssetObj.Count - 1& [4 _3 O7 ^% d6 f& P: z
    If ic < 1 Then '选择集孔或图素小于2则退出
4 [# R, b5 H4 [2 [# t/ ]5 Y3 H6 W     Exit Sub
8 m5 y% z4 R; h: _' G" X$ U    End If
& _( t8 j( I5 b$ {) G; o* h$ Z4 p, ^    ReDim EntName(0 To ic)
! E& ^+ t- R+ y; r+ G5 a    ReDim line1(0 To ic): ReDim line2(0 To ic): ReDim line3(0 To ic)
1 n; v# o8 E7 j" H# M6 @    ReDim arc1(0 To ic): ReDim arc2(0 To ic): ReDim arc3(0 To ic)/ c3 y! b1 G9 V7 y4 i4 I
    ReDim arc4(0 To ic)
/ e8 r$ l8 _+ v6 Y( G    ReDim cir1(0 To ic): ReDim cir2(0 To ic), ^' I8 X, O/ w& I# K
    ReDim blk1(0 To ic): ReDim blk2(0 To ic)4 c/ u1 N  a# K- W) `' D
With ssetObj
5 J1 O2 ~4 p! B/ C* F' U# g5 }    For i = 0 To ic0 p2 T3 U$ `5 j2 V1 @" F' f
         EntName(i) = ssetObj.Item(i).ObjectName5 h6 y' [! |% q: t3 ]! R- l7 ^
         Select Case EntName(i)
, S, U0 A4 x! t          Case "AcDbLine"& p/ Q# a0 I% m: U) D6 {$ [
           line1(i) = .Item(i).StartPoint' S4 F( E3 |2 j* y' q
           line2(i) = .Item(i).EndPoint+ p2 V3 x" Q9 m# H  Q9 \7 ~6 g
           line3(i) = .Item(i).Angle- O! R& W0 i. |$ k4 L; Y3 b
          Case "AcDbCircle"
4 \% X9 G' V, U  f' A- L% F              cir1(i) = .Item(i).Center
' C, `9 y* g$ _: N7 E              cir2(i) = Int(.Item(i).Radius * 1000) / 1000
1 c0 {( A# P9 \/ g( L          Case "AcDbArc"% T5 l8 @9 |! t6 k' Z$ X+ Z# G  Y6 [
               arc1(i) = .Item(i).Center
: K4 W2 D$ b5 F, ]: D0 F               arc2(i) = Int(.Item(i).StartAngle * 1000) / 1000* f$ ?' [8 v2 K1 }; I
               arc3(i) = Int(.Item(i).EndAngle * 1000) / 1000
- g3 D+ u: m, V8 T# y5 K3 f               arc4(i) = Int(.Item(i).Radius * 1000) / 1000" R6 f' [% f: ]( m8 k
          Case "AcDbBlockReference"
! s) e) H( n( ~! W$ L, a( I              blk1(i) = .Item(i).InsertionPoint5 y+ e. W! C2 J' q
              blk2(i) = .Item(i).Name
0 ?0 J# r* v- p4 ]          End Select
7 T# {. F5 }! w         
6 v# I: t* ]3 q+ [    Next i
: Q$ k* a- X+ f2 b. F- j5 m% I' y! ~9 m( i& Q6 m& |
For i = 0 To ic - 1
/ L9 M7 h+ I  J- i3 s. _    id1 = EntName(i)8 D8 h' R/ s, Q9 d/ j
   For j = i + 1 To ic
1 Z/ s2 x' [, b4 D" g      id2 = EntName(j)+ X- U5 l& X! z3 ~
     If id1 = id2 Then
% n/ o" j  O2 N- t* T# I7 z+ J       Select Case id18 K! Z; C  ?" u8 Y. R: v* C
          Case "AcDbLine"$ y( g3 e. @3 C% M# U
            pt1 = line1(i)
( G- `! z' H2 p9 i7 m            pt2 = line2(i)
5 p. I  x: q  ^* n5 |* N            dege1 = line3(i)& Q8 k6 A9 p# \* w# v  x
            pt10 = line1(j)1 F8 h" b% m) M( S& X) z" K
            pt20 = line2(j)3 f" S+ @3 j/ }
            dege2 = line3(j)
6 L6 P' J$ K) g& |9 s            If Abs(pt1(0) - pt10(0)) < 0.01 And Abs(pt1(1) - pt10(1)) < 0.01 And _
- V3 A$ X5 ~% k& ?6 p( d            Abs(pt2(0) - pt20(0)) < 0.01 And Abs(pt2(1) - pt20(1)) < 0.01 Then
9 I# w  H9 |* p; Z" O+ s               .Item(i).Delete
" @* F- `, R! K. t0 R+ l* I6 z               Exit For
1 h" C* w$ N5 q            End If" N6 [* o# D. {- W
            If Int(Abs(dege1 - dege2) * 10000 + 0.5) / 10000 = 3.1416 Then
% A' y% C) s% X9 i                If Abs(pt1(0) - pt20(0)) < 0.01 And Abs(pt1(1) - pt20(1)) < 0.01 And _
9 Y4 L7 l2 ^6 B# B( @                Abs(pt2(0) - pt10(0)) < 0.01 And Abs(pt2(1) - pt10(1)) < 0.01 Then
  e" y- ]/ l/ T; O  j/ i% x7 K6 j" l                   .Item(i).Delete
' w/ j; j; c3 Z( a/ Q  x1 X2 ?  F                   Exit For+ s( W. r: {- Q0 ~9 v3 q
                End If
. F$ a* Z' x# n            End If& r! M) ~7 E* I3 H) y; S5 d" o2 y7 e: X
          Case "AcDbCircle"
( J. t  H0 p  w6 y' J$ p            pt1 = cir1(i): ]* D) c8 E$ g% T/ @6 |7 m% B2 C
            Yuanr = cir2(i)
$ @  N6 z3 m6 O2 w/ F: {0 O            pt2 = cir1(j)" H% H) x+ }" \2 J  O+ O
            yuanr2 = cir2(j)3 q8 t( H$ M7 m! k
            If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 0.01 And Yuanr = yuanr2 Then3 w! ]: s- P" r# N
               .Item(i).Delete
: `* I1 d% P- c$ G8 m' P" O               Exit For  x% g4 \) i8 D3 `
             Else& N! O; Q) P& t$ i# h, Y9 J6 w& I9 O
               If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 8 Then, x9 s/ q: [. ?$ c
                  .Item(i).color = acGreen
: [8 ?; A- F$ _- ~$ b               End If
* X, S$ |7 @# A5 S& Y4 K) _            End If
$ K! n) @$ O+ g! K2 ]9 c* U! m3 l          Case "AcDbArc"  Z( F0 `9 Y* S: j  d
            pt1 = arc1(i)! i  u$ H4 J/ }! \6 w. H; t
            dege1 = arc2(i). q' j0 t' w# v. G* t9 i
            dege2 = arc3(i)% D0 I) _; b) e* z
            Yuanr = arc4(i)
: k7 P6 w8 L  E+ u            pt2 = arc1(j)
6 P# _/ {4 Q- Y8 s7 h# p            dege3 = arc2(j)
! C# Z8 S. o" Q& Y            dege4 = arc3(j)
! h0 @" A0 k) N9 P            yuanr2 = arc4(j)
' b! ?( d5 z' N# n) Y! {* E            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And Yuanr = yuanr2 _* `5 m0 y, m' f2 Y0 Y: c
            And dege1 = dege3 And dege2 = dege4 Then6 h0 g2 m* k" s
               .Item(i).Delete! I- T/ X  A) d* X5 d6 d) `
               Exit For
% c6 W  e; K% R: D0 y$ O! r            End If
, V1 D1 H# T; S  f: S" o! D         Case "AcDbBlockReference"# a% \: m0 c; l: j  ~/ W
            pt1 = blk1(i)
2 f4 P$ L* x, m5 R' ?            str1 = blk2(i)
& n7 I: l% t  V& }( s" X; w$ O            pt2 = blk1(j)
# A3 o+ J+ X- [2 r  v% E% x* j            str2 = blk2(j)
( I3 C0 |/ k) I" ?( G            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And _- m: C) G( Q6 D# d% {
            Trim(str1) = Trim(str2) Then. \' X, m: |2 u0 l
               .Item(i).Delete
( [0 Q4 I+ v1 r2 B7 ^               Exit For" I/ }) N  F( }. p7 T# w
            End If, i7 I* m: }5 F! R, L/ z' ~' E
        End Select
8 H2 M+ `" V& V      End If8 Y# O. ]" h6 H
    Next j) W. g* k9 [2 ]6 F
  Next i
1 {5 s3 j! r9 ^/ n! `. {- s$ _2 L  End With& T) P4 @. ]/ u+ h: v* `2 j2 s; v
'  MsgBox "删除重复完成!"
* [! D6 B/ T) L, h2 s/ O7 t   GoTo ccc28 |1 k2 _/ O$ ?$ {$ ]
ccc1:  MsgBox "有错!!!"
+ _" q- ?6 s5 E8 R8 P7 ]ccc2:     'ssetObj.Delete5 k% K# {0 s$ s5 I  ?2 e

. x7 W5 r, A/ n9 J/ F6 q8 w% }5 h End Sub
1 z. d  ]2 ]6 ?, }/ C3 a
& m1 y0 _/ L4 _; r Public Function Clamp100(a1 As Double) As Double   '判断块存在不存在,存在=100,不存在=01 S2 m4 A- v+ i
    Dim p1(0 To 2) As Double '交叉选择的左下角点
  U2 [4 e! L5 s& ^- G0 n7 K3 |    Dim p2(0 To 2) As Double '交叉选择的右上角点6 ^. a, M( K" U
    Dim ssetObj As AcadSelectionSet
! H9 y  h: Q, N( P/ Q5 }! M- k4 O    Dim ic As Integer, j As Integer% l/ M2 r8 Z& C" G5 Z
        ThisDrawing.SelectionSets("SSSS").Delete0 ?5 V8 e, `/ t( e
        Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
$ T- O' D0 z3 G5 ?  D        p1(0) = a1 - 15: p1(1) = -25: p1(2) = 0
8 c$ q1 m3 F  G% Z' {6 L! ?9 T        p2(0) = a1 + 15: p2(1) = -5: p2(2) = 0, k4 w) {+ s( c: A* c+ \1 ]
        ssetObj.Select acSelectionSetWindow, p1, p2
: x5 Q. ]$ n8 @1 Z: L, W, J. g        For j = 0 To ssetObj.Count - 1
. P7 T$ `6 w8 I/ W1 O; _         ssetObj.Item(j).color = acGreen- q- {% ]( J2 t$ `/ {1 D' \3 f
          ssetObj.Item(j).Update
' w* }% @2 B4 N8 q8 K0 ~8 K9 K        Next j: H% r) \# a4 s4 H) r
        Clamp100 = ssetObj.Count: Q# Q' ?0 h" Q$ @& B  s
End Function: D* E; F3 l1 O) ]/ K7 A, R( L
% J' {! O  T8 _, H( G4 \) v

! s4 S$ C0 Q" X% q
: I$ Q9 g3 m  h1 |# O! K$ t, p' J+ d
看不太懂 不过   我在这里多学学  应该没问题的  嘿嘿
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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