找回密码
 立即注册
搜索
查看: 7372|回复: 29

今天和朋友学了会儿Excel,折腾到2点半..

[复制链接]
发表于 2014-6-20 02:58 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-6-20 16:05 编辑
9 `1 ^3 i8 w( O
! u! M3 D& V4 m不怎么用Office系列,今天偶然和朋友聊起来,突发奇想用Excel做了个扫雷的修改器....[em1127]( h; n# c6 `8 d
虽然不会Excel,不过VB咱小时候还是学过的...[em1124]3 N% E- l# v" m7 n- [1 U9 @( B( q
3 q( f( [9 y: o
我用的Win7的扫雷,其他版本的估计不行..可以停止计时和在表格中现实地雷位置...
3 c. D3 x( Z3 x4 I( {附件就是那个表格...如果版本不对就直接看代码部分自己复制过去也行..4 U) q9 S" N1 u* I
顺便说,VBA简直反人类..MS为什么不出VBA.NET啊...大段的代码要自己写,而且抽象性巨差....
, L7 h5 f& f' C1 B5 N& M! @' f4 f5 U9 @2 {* w) Z0 @. t/ A+ W" Z
MineSweeperTrainer.rar (22.27 KB, 下载次数: 6)
2 L9 d. m* b$ }  \7 M. p; V% d
2 |! v7 g8 U0 X. \3 l+ S2 t4 f 1.jpg ; j& q3 J4 ]! d9 R& ?
  e; r& }5 p; s4 v& s
' \* R5 ^4 S! s
  1. 【控件】/ O+ N  U. G1 q" d' Q6 ~( _
  2. 3 X; m" U1 _/ O3 q0 }& d4 h5 e
  3. 窗体:frmMain7 C5 J. D! T' ?2 {0 H6 Y1 }' q5 i* v# A
  4. 按钮:btnCatchGame,btnRefresh8 x- ]0 P: h: ]) h1 Q. B" j
  5. 选择框:chkGameTime
复制代码
9 z" o% O; @+ ^/ K9 M7 i; _
9 u7 l' a$ F. h% ]4 u* I& f! {
- Z$ S* e+ {6 p* D, t+ z- i0 g

& ]! |8 N; I/ M
  1. 【代码】+ j0 [$ @4 F- }) s0 ]1 D
  2. 2 g1 z' I! E/ I. U5 l
  3. % E$ Q* d  i9 Y7 K* y
  4. Option Explicit
    ! s3 r% [) L( ^' Y6 J6 a3 l, Q
  5. 5 r6 a- N9 T# x# A

  6. 3 u# w+ ^- g; j1 T" N4 d" p1 O
  7. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long+ z( d- X6 t  D# K" l, b; ]
  8. Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long' ?! Q, O$ W2 h" F
  9. Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long5 V4 l' R8 z9 ?+ }, G+ b! n2 Q
  10. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    1 v5 M( f5 P4 Z) I" b
  11. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    & J' M. B2 W: N7 i
  12. Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long& M8 O3 P- ^3 k% j  [
  13. ) \* U* u# n7 _0 t. t- D
  14. * q$ f1 X6 F( ^  S# ^+ b# l! p
  15. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long; W- [$ L' j/ l5 p
  16. Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long  O; Z2 u) ]4 B" L: ~: c- l
  17. Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long: D% b0 K9 ?( @2 [- j
  18. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    ; T7 Q1 P: w  Q+ N  ~, M/ Z

  19. . v3 Z$ J2 T* {

  20. & Q0 H' A) K  c; c
  21. Private Const TH32CS_SNAPPROCESS = &H2+ X# e5 z; z0 p0 N( k& q* u0 t4 X
  22. Private Const TH32CS_SNAPmodule = &H8( e# e' C1 w  Y6 ~
  23. Private Const CB_SHOWDROPDOWN = &H157: {) V7 R0 y( x; e% B; V
  24. Private Type moduleENTRY32
    % D  g6 e" j) F0 r
  25.     dwSize As Long9 r) Q0 A# x3 F
  26.     th32ModuleID As Long
    , r0 i: U! M2 e, V
  27.     th32ProcessID As Long
    $ ]9 @: a& @. r. J
  28.     GlblcntUsage As Long3 J( f( V& G& W' @8 p9 Z% K; y
  29.     ProccntUsage As Long
    ! W. a7 q" a  s' M. m
  30.     modBaseAddr As Long' @4 R. F4 m0 `% l1 O& }
  31.     modBaseSize As Long$ A$ @2 q% D3 O
  32.     hModule As Long" p  m  F& n  E  u
  33.     szModule As String * 256
      c0 A- ?$ w$ P. x
  34.     szExePath As String * 10245 b$ j& ?5 D* v: }/ z9 ]
  35. End Type
    9 x4 H* o- C2 @; j7 r. F5 ?
  36. : d0 @! B  E7 Z: d8 H/ i  V  ~# x
  37. Private Type PROCESSENTRY32
    / {$ d, K1 U6 i; Q" ~& M  m
  38.     dwSize As Long1 O7 Q4 O1 q8 [& X- Z' m
  39.     cntUsage As Long
      k4 M. b6 C) Z$ m* d( H3 _5 j
  40.     th32ProcessID As Long
    * _5 p6 S- S; w# g1 T
  41.     th32DefaultHeapID As Long
    * f( D: k5 l0 r4 Q, Y* J
  42.     th32ModuleID As Long
    , t6 A# C& B2 Y" a9 m/ p; l  p
  43.     cntThreads As Long- Q" X7 h- {* {8 u5 P  R1 D& }( Q
  44.     th32ParentProcessID As Long- b/ F2 f1 ~. b/ F
  45.     pcPriClassBase As Long
    6 f- Z( ]4 ^  Q7 Z* @
  46.     dwFlags As Long* @/ H* ?, M( [  f
  47.     szExeFile As String * 1024  `6 |/ U% |4 Z0 t- q+ l- w5 }/ v
  48. End Type) \# W. j' ~  Y) U9 `
  49. ( a5 \+ ~, {6 u

  50. & O: T3 o# Q/ d- g2 h

  51. . x, e0 T0 \" S8 J) a9 l. A
  52. Private Const PROCESS_ALL_ACCESS = &H1F0FFF
    & `& W+ U- ?! l+ _) }5 l
  53. Private hProcess As Long
    5 t3 t9 X! u' I- m
  54. Private PID As Long4 M6 S. T- |/ h2 J/ L
  55. 3 }4 q# \) K' W, i1 o0 _8 C# k- j8 u
  56. 2 ]8 G' v, Q% e, L: {# p7 i
  57. Private Type asmNum
    / f1 i  {% \) i2 H3 e
  58.     nuM1 As Byte# t8 T  b  R6 N( e+ h6 S5 h8 \
  59.     nuM2 As Byte
    / r( w/ }: R2 }% @* ^! L
  60.     nuM3 As Byte" q0 P1 I% d) s6 w4 N* a% o
  61. End Type
    % o9 X" d9 q8 Z  W3 `

  62. ! Y6 t/ @* J; k, s2 w
  63. Private adrTime As Long. n* K  y6 Q6 [" Z8 d7 b- Q
  64. Private adrMine As Long6 ]5 c+ l0 A7 {2 [. _+ X* t$ z

  65. : N" ]# A' ~0 @! S! q4 z
  66. Private Function GetProcIdByName(ByVal ProcName As String) As Long
    ; K5 t: i1 m$ @$ @0 M' x
  67.     Dim PE32 As PROCESSENTRY32! l. |3 q0 A! `# h
  68.     Dim Procid As Long
    ! k% \! P; R$ c+ G/ c8 w3 M
  69.     Dim hSnapShot As Long7 H$ V7 d. \; S( ~
  70.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPPROCESS, ByVal 0)- e; U8 g. N5 L3 Z
  71.     PE32.dwSize = LenB(PE32): ]/ P( i- ?9 F6 u3 K0 E
  72.     Process32First hSnapShot, PE32
    9 D3 ?; t# v5 e3 U8 o# i
  73.     Do
    - I  Q. ?2 e- P. C
  74.         If lstrcmpi(Trim$(ProcName), Trim$(PE32.szExeFile)) = 0 Then/ O2 R; n1 t, E& p9 ?
  75.             Procid = PE32.th32ProcessID4 f' V0 x$ K4 Q# C
  76.             Exit Do  Z; y3 P; @! O& S8 r8 J5 G/ {0 |
  77.         End If
    5 I! J" {1 k8 E4 {' W4 v- k
  78.         PE32.szExeFile = vbNullString1 `2 F+ k1 G$ O9 r2 A) A) Q) L9 |
  79.     Loop Until Process32Next(hSnapShot, PE32) = 08 U$ }2 \+ q3 T' q/ c# N. i6 B
  80.     CloseHandle hSnapShot
    / D1 d' A# T! X7 @) R
  81.         GetProcIdByName = Procid
    & E6 I3 Z" j/ [; o7 \+ r
  82. End Function
    ( R& M3 a+ }, h: M2 w/ V
  83. & Q4 j# V+ `7 C( U2 {. l1 e2 `
  84. : X. U  I; Q1 j! W2 N% ^

  85. . C4 g  p. A3 a8 r7 i
  86. Private Function GetModuleBaseByProcName(ByVal ModuleName As String) As Long4 p. c  v# l6 s; Z1 q

  87. 9 e8 {7 {4 ^+ z
  88.     Dim ME32 As moduleENTRY32, ModuleBase As Long3 V4 X7 N) K4 c3 S
  89.     Dim hSnapShot As Long
    7 x6 b* b* b  B1 |6 D) J7 R; V; i
  90.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPmodule, ByVal PID)" f* Q% n; e& l
  91.     ME32.dwSize = LenB(ME32)
    ! B, I0 W( ?6 T  y, c
  92.     module32First hSnapShot, ME32- D3 X* j' z5 \% C6 g/ S& u
  93.    
    5 `8 |, e4 p5 p+ J+ @, i
  94.     Do! _% X9 k+ `7 s
  95.    
    * a! @0 w, }) Y* q; `; t# g+ K
  96.         If lstrcmpi(Trim$(ModuleName), Trim$(ME32.szModule)) = 0 Then) U9 l7 ^' w+ O3 {. x9 `
  97.             ModuleBase = ME32.modBaseAddr, Y& C* @# k$ Y( I5 G: Z4 b7 p
  98.             Exit Do+ \! d. i, r; r- @* [' m: ~
  99.         End If7 N. g) V$ s$ R9 v7 P! w
  100.         ( Q' I2 S, a$ D) h/ c
  101.         ME32.szModule = vbNullString5 v# y2 b6 z6 r9 A
  102.    
    ! h0 a/ B/ I9 ]
  103.     Loop Until module32Next(hSnapShot, ME32) = 0
    # ~; a$ S7 }9 y" u5 o, r- w
  104.     CloseHandle hSnapShot* G! y/ @. C# c' M
  105.     GetModuleBaseByProcName = ModuleBase
    9 @% a& d' B) B' k- N5 A

  106. 3 f: f1 I$ W- Y2 `' [6 {! T8 Q
  107. End Function
    , E) V4 o( `5 x+ s5 S) z6 H0 {

  108. ' S3 z! g( x9 p8 n

  109. 6 I; j4 y. f9 J8 x8 ?$ m+ ~! N
  110. Private Function GetMemory(ByVal Adderss As Long, Optional Length As Byte = 4) As Long
    5 m: G" A% Z; F8 R* C
  111. ReadProcessMemory hProcess, Adderss, GetMemory, Length, 0
    9 d- _; S' Q' G6 Z$ U1 c- T6 @
  112. End Function; X1 N) F1 b8 ^1 h' r) b" x
  113. Private Sub SetMemoryAsm(ByVal Adderss As Long, NumVal As asmNum)
    2 C2 N, z, Z. T7 V$ H( N4 \
  114. WriteProcessMemory hProcess, Adderss, NumVal, 3, 0
    ; K- `9 f: L; F& ?5 k) t
  115. End Sub
      y3 h2 Z$ d4 M$ }! Q3 {4 u

  116. 7 i0 z  i& y, ]
  117. $ f1 |$ T( C9 `* d) a; {" M
  118. Private Function FindGame() As Boolean
    - t( U* P$ I. `  ?* C
  119.     5 z# h% u. D$ y
  120.     PID = GetProcIdByName("MineSweeper.exe")
    - G  B- J' V1 C- }
  121.    
    $ t9 C. f. x% U5 t
  122.     Select Case PID  Q- n& h- }7 o3 P2 Y
  123.         Case 0
    6 I9 o% J6 f+ y2 J" ^; c5 m
  124.             FindGame = False
    8 [! G; O  e5 u6 K3 u- A- S: n. _9 K9 Y
  125.         Case Else( Z! j1 G$ o- |* q9 U- E- r/ I
  126.             Dim adrBase As Long
    ; ]1 ~( H, p2 e+ ^
  127.             adrBase = GetModuleBaseByProcName("MineSweeper.exe")
    ! ~4 w' x7 G: ~9 C$ ?
  128.             adrTime = adrBase + &H21446& }* u- r9 W& A2 m
  129.             adrMine = adrBase + &H868B48 w3 f/ m. r8 v' w! w4 _9 e
  130.             FindGame = True
    * z6 v+ K/ W) T# x) i2 @
  131.     End Select
    4 J4 Y1 s* ?0 r& g8 t
  132. End Function
      u+ ~( b; K$ ]0 a" y2 Y/ ]& @$ R

  133. 4 y! |$ v5 }, N5 X! P
  134. Private Sub TrainerState(ByVal State As Boolean)
    4 A0 `. a  U0 C6 I5 N; g4 s5 o
  135.     chkGameTime.Enabled = State& @3 A7 q6 N' m
  136.     btnRefresh.Enabled = State
    + z- S) E# |0 W8 c" [7 b, _4 k
  137.     Select Case State/ W4 a3 _) t- i
  138.         Case True+ b, o' C) V) R% A+ g
  139.             btnCatchGame.Caption = "ReleaseGame"! t/ d$ R( B$ o$ B8 D: Y: v
  140.         Case False
    ; Q" C0 g6 @* p
  141.             btnCatchGame.Caption = "CatchGame"7 Z$ c, Q* u6 T' _
  142.             chkGameTime.Value = False
    ' `" T2 T5 v% R; l/ L
  143.     End Select+ p2 N- H* J& @9 M2 {
  144. End Sub9 G! p$ Y, I3 H& I; x3 z$ k* `" k

  145. 4 \- F; t. e6 _' |# G- N! H
  146. 0 a: V1 j4 R5 B
  147. Private Sub AsmState(ByVal State As Boolean)  G* _+ O+ B! d1 Z; v8 M
  148.     Dim asm As asmNum
    6 v. v0 u: x6 p! V  \
  149.     Select Case State( T( U& n# S$ Y) X% G- I
  150.         Case True% Z0 W1 t% [+ r7 U( ]' h- t9 o# v  M" d
  151.             asm.nuM1 = &H903 q, L$ S  \4 g( b2 F# {5 u4 Y$ {  M
  152.             asm.nuM2 = &H90- i  ?& K3 V% u
  153.             asm.nuM3 = &H90
    0 P8 e. C# [$ d, p0 s2 [; B
  154.         Case False! z/ m9 u0 s  p3 j5 p# Q
  155.             asm.nuM1 = &HD99 T! p2 _' d% D. K& C) R
  156.             asm.nuM2 = &H58  r6 k7 g8 @8 A. I
  157.             asm.nuM3 = &H1C
    # s, B( C+ O* e
  158.     End Select
    " E% X5 R: g' \; V$ b, g
  159.     Call SetMemoryAsm(adrTime, asm)
    - b! p' K0 U: \" Z
  160. End Sub. n1 z9 p# G7 y6 a% F
  161. 0 d: Y% X9 }* P: \' c  U
  162. - d$ F$ f1 z' @. g, d0 e$ D
  163. Private Sub chkGameTime_Click()
    / ]$ v# X2 D0 Y
  164.    AsmState (chkGameTime.Value)
    4 {# Q! U  `) u9 y5 {, x
  165. End Sub
    - i* g- w" Y# A) `
  166. . i2 A$ M( N- v. o$ N! g  v

  167. 3 _1 s7 ~6 K. P( n/ o- s8 F
  168. Private Sub isOpen(ByVal State As Boolean)
    ! {4 {$ ^  u8 e
  169.         Select Case State) w! }! o0 r5 |% E" u  e
  170.         Case True4 m0 N$ C! N* e
  171.             If FindGame = True Then- N7 }8 t2 d9 r: ]) L4 B4 |
  172.                 hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PID)
    - J% Y8 X6 c0 r5 @
  173.                 TrainerState (True). _6 c! N, I8 v
  174.             End If
    ; V4 |7 a2 N# K4 m3 N7 V* l+ K
  175.         Case False
    + _% B8 K" a7 Q7 a% G
  176.             If FindGame = True Then
    ' e/ N1 q9 P. ~5 ?
  177.                AsmState (False)9 J" J! F/ R  h; R3 \, n2 J& n
  178.                CloseHandle hProcess+ A' a8 S. g6 }3 j. p7 ~# w) L
  179.             End If7 {. S& F! C2 \* m4 R" v
  180.     End Select+ f% X# w: Q9 e0 u6 F
  181. End Sub
    % G( @% j  {) C- b
  182. / L1 m5 l% c+ y& k4 R

  183. 3 W1 X, j& Z: H9 c$ E' F; |+ }5 |
  184. Private Sub btnCatchGame_Click()( W2 Q7 Z5 {0 x
  185.     Select Case btnCatchGame.Caption
    7 o4 y( K& v# u$ o9 z
  186.         Case "CatchGame"6 E/ D% K9 l* O2 N# W- b- i) z
  187.             isOpen (True)
    ; O3 }1 u- [* j8 L# t9 f% p1 Q
  188.         Case "ReleaseGame"
    2 D* [" e3 Z2 E& R" O
  189.             isOpen (False)% A  ], s' r8 |4 G: H$ r
  190.             TrainerState (False)
    ; x8 Q  s1 W* }/ f# b0 N
  191.     End Select
    * U8 l: a3 B- M' H. J0 C
  192. End Sub
    % Y) g3 l' c' z  x+ g1 q; e7 [* q: m- S

  193. 8 e* U! C& a) J1 W  R, t
  194. Private Sub btnRefresh_Click()
    0 F/ ?: k* @3 }: m  }

  195. ) ~# E4 s- Y& o+ S. M
  196.     Dim mineColumn As Byte, mineLine As Byte
    * b8 H( l. Y  z1 Q
  197.     Dim adrPoint As Long, adrTemp As Long, adrColumn As Long  M! T" C9 z5 U/ Q  M0 V+ e! f
  198.     Dim i As Byte, j As Byte
    2 Q3 p9 Q% n+ X7 {; l+ F9 w6 l4 t0 i+ c+ D! z

  199. * X5 _4 ]0 `7 X- P! I/ y' U/ G2 p4 k
  200.     # [/ v" ~1 ]8 K/ f, ^8 K* y; X
  201.     7 N  B) l! G) Y, g( x9 Y
  202.     btnRefresh.Enabled = False
    / i- G4 B3 ^! `$ u, a$ f
  203.    
    " x" X! [6 V/ w  b) b
  204.     adrTemp = GetMemory(adrMine)
    - p$ {; k5 @( \0 n5 K
  205.     adrPoint = GetMemory(adrTemp + &H10)
    & n* e" B2 c, ?: g  N  |0 U2 z, v
  206.     9 U: q; I: Z; ]. e" h& X5 l1 o$ ], Y: a
  207.     mineLine = GetMemory(adrPoint + &H8) - 1- g2 r2 w- g$ S6 U% d: V0 Q/ @
  208.     mineColumn = GetMemory(adrPoint + &HC) - 1
    ( c: @8 h( F9 ~5 Z1 j
  209.     5 g  [- y3 l5 V" ?) z- F; T* l
  210.     adrPoint = GetMemory(adrPoint + &H44)( n' }0 ?2 V! y
  211.     adrPoint = GetMemory(adrPoint + &HC)7 f' P  w+ l. p4 d- H/ q
  212.     $ D. U* Y* x$ B6 j
  213.     * D- c" x# H3 _7 Y+ E2 P. s
  214.     $ b8 I# e$ H8 r7 u/ O: n
  215.     For i = 0 To 30, U& `( {* G  \
  216.         adrColumn = GetMemory(adrPoint + i * 4)
    5 i; Y! U  S! C, i7 F
  217.         adrColumn = GetMemory(adrColumn + &HC)
    2 O. z1 ~8 H! u& P: w1 M
  218.         For j = 0 To 235 v; v& G  q( w0 e2 g, k
  219.             If i > mineColumn Or j > mineLine Then8 n' B3 F0 Y2 }7 Y, ~2 F# u
  220.                 Sheet1.Cells(j + 1, i + 1) = ""+ E1 d/ C% h9 F& W
  221.             Else0 |/ f4 ]/ Q# E7 p% Y! T
  222.                 Sheet1.Cells(j + 1, i + 1) = GetMemory(adrColumn + j, 1)3 D* z6 w7 n5 H% L% d) ?
  223.             End If# U3 Y7 X/ I9 y6 U# _" ^
  224.         Next j* ?! a6 p: S0 _
  225.     Next i( l% U0 K4 Z& \3 H& u: n
  226.     btnRefresh.Enabled = True
    " F, [+ B- x! l9 I7 t* b
  227.     ( n! B# |* e" R+ W6 q3 J
  228.     & w- D9 q+ `$ t- W, `  Q
  229. End Sub  X# b  M. U, A. y
  230. 2 Q: O" ]& a5 C. l# }' L
  231. Private Sub UserForm_Initialize()
    6 Q& L4 N& o$ V$ b
  232.     TrainerState (False)2 A7 [* u9 n) P9 t+ Q
  233.     Sheet1.Cells(1, 2) = 1% Y9 `& f# v( e* B) K
  234. End Sub
    " k, v7 {: S) O8 s9 p
  235. 5 h! S% P0 h9 r2 q: F& D# c
  236. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    8 ]  R; l. a& Z8 x! q
  237.     isOpen (False)
    - L" c- G4 z" a0 q2 r
  238. End Sub+ l# S( N  j* m  q: m# c
复制代码

4 V5 K1 n+ p+ P9 t, `, P4 |
' W5 {. i1 p4 `3 O" R# W
2 j* S% Y7 H& e2 R5 n9 \2 }5 g" w1 h; h
发表于 2014-6-21 18:42 | 显示全部楼层
EXCEL2010盡頭.jpg
# |. d+ }/ V% |( t4 R事實證明Excel是有盡頭的﹗(謎:你是閒到甚麼程度?﹗)
' H1 \  L: r3 k# w4 K7 M
发表于 2014-6-20 12:29 | 显示全部楼层
excel在我們這裡是必學的…
发表于 2014-6-20 12:45 | 显示全部楼层
厉害还有源码,学习8 o8 v* C" a& O/ G2 t* e
excel我只拿来做最简单的表格。。
发表于 2014-6-20 18:24 | 显示全部楼层
完全看不懂!!!!。。。
, l4 m1 A& K( [$ Y* ?
# K2 o  S& Q1 [- Z3 e& n不明觉厉只能跪
发表于 2014-6-20 18:49 | 显示全部楼层
尗又 发表于 2014-6-20 18:24
5 i1 I5 s( _& A/ ]6 Q* m. B! u2 ]& j! A完全看不懂!!!!。。。
$ S( ^% y7 B6 n, y3 O% Y; ]. f( i4 I8 V/ r/ Q9 s5 {
不明觉厉只能跪

8 ~" x& H, z( Q3 L, q這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…
: a% p! K0 A9 `& G
发表于 2014-6-20 19:00 | 显示全部楼层
NataieChan 发表于 2014-6-20 18:49
7 @  c) t& @! V' I2 o這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…
& b( o% r! l  \  p% L9 L2 S
哈哈那是,因为我对修改器的东西比较感兴趣啊
  X- ^5 S5 c$ F6 ~3 [. h8 t6 j
发表于 2014-6-20 20:32 | 显示全部楼层
止慈 发表于 2014-6-20 19:00
! ]/ l3 q7 ?9 F  O3 p. W. }哈哈那是,因为我对修改器的东西比较感兴趣啊
0 Y$ M6 Y+ w2 V
莫非你勤制修改器的目的是因為懶得自己去玩…6 P8 x7 _% {; r
发表于 2014-6-20 20:57 | 显示全部楼层
NataieChan 发表于 2014-6-20 20:32  ^* @7 S; ^4 B  @5 u
莫非你勤制修改器的目的是因為懶得自己去玩…

' J- j0 _( A9 C# A* @3 [不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、跑进场景、走一段路、去点制作人、看目前有什么通告——这里还只是看到目前有什么通告,还不一定想接,也不一定能接,或者现在就能接。玩得烦了就自己琢磨减少一下流程,毕竟游戏是要有乐趣,但鼠标点多了也太繁琐。
) x' {6 g% ]* N; K3 R3 I而且我玩游戏是修改派,不修改无乐趣。。$ r% Z- \* V9 |& r

* i5 h3 r0 _3 f6 R- e0 M+ K有点跑题了。。再回到excel上,小N你们学校里都学用excel做什么?我会的只有最基本的表格和加加减减求和比较之类的。。0 T8 m/ X4 ^- b2 C: Q
' z. {9 i- j4 K- `! s% a
再想起来,我因为需要,想过用excel设计一个东西,大概也是存一定数据然后按自己需求可以随机提取之类的,搜到一篇文章还提供了源码的,结果源码链接无效了。。. s- }3 J# B: W. \7 {1 R/ n/ w( l
2 e$ h  E" v8 E
, {- `( F4 `0 }( f: ?3 H: p; u0 u5 F

' r# y: h% t/ z' \: p" e# J止慈 于 2014-6-20 21:12:09 补充以下内容! p' x3 S6 y9 i* Z0 W3 D. Z& ]
* h/ M: D  r5 Q
求指教。。打开附件excel,启用宏以后,那个窗体怎么出现。。我编辑宏能看到源代码,excel不会那么多不知道怎么让那个窗体出现。。
, q: W' z( L+ E! a9 `, A3 t& r. M1 w. ?& F" g/ v
在我这里$ j+ s0 @7 g7 r9 b" B
  1. mineLine = GetMemory(adrPoint + &H8) - 1
复制代码
+ x! J; G: i# |* V; F1 o  r3 N* B5 g8 d
会溢出  K& S0 s  \, B$ S* K1 ^" O  M
/ E/ r5 b6 C8 D% q* z
不过没关系,只是做着玩玩的,不用修~我是试着运行了一下然后出了这个错误,就顺便说一下
' I" Y( f) v+ C+ s6 ?. E
/ q  S' r0 p* v, x- l2 @# I
. v0 O' N7 E4 `4 s
发表于 2014-6-20 21:15 | 显示全部楼层
止慈 发表于 2014-6-20 20:57, R' F' U, Q! d9 u! ~0 |
不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、 ...

( o4 e: C# S4 s做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…, G$ W5 n8 H, j$ X

, C5 H# r+ X7 B9 ^+ O' @; s& }; o* g6 [- m" t" X
NataieChan 于 2014-6-20 21:19:08 补充以下内容) ~: O: h# I  a; d2 s; S
0 Y9 V1 c1 i9 ]1 x
做各種的圖…
发表于 2014-6-20 21:23 | 显示全部楼层
NataieChan 发表于 2014-6-20 21:15
. @; R" @- t1 m做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…
3 g' O# d' n5 E+ |% S% O3 t
[strike]做什么奇怪的东西说出来让我们乐一乐[/strike]) f2 x$ u6 o# r2 D% q* F* N

( v# q) D8 E6 H. |' A排名还好啊,不过也许你们的是比较复杂的排名,那就麻烦点吧。。
" v* k8 X2 G* M
- b6 v- j: c, K2 L1 |: U以下是编辑:
. i- O# K' w: v, F+ T0 A/ A' V& D" N+ L: I% v" w. q% C9 {& Q
刚刚没看到你补充的。做各种的图的话确实比较麻烦。。; g. I  v& }# c1 ~; S
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明志略 |明志略已经运行了20年11个月22天

GMT+8, 2025-2-19 07:07

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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