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

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

[复制链接]
发表于 2014-6-20 02:58 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-6-20 16:05 编辑
! m$ L! w: O2 f- c: i. P& T) a6 d7 F" u
不怎么用Office系列,今天偶然和朋友聊起来,突发奇想用Excel做了个扫雷的修改器....[em1127]1 _1 Y& q+ B1 B3 G  k/ L4 S
虽然不会Excel,不过VB咱小时候还是学过的...[em1124]
1 C3 b5 |2 W& N- p) h9 w2 l# m' z+ e  ~1 k/ V& Q* v8 W( r
我用的Win7的扫雷,其他版本的估计不行..可以停止计时和在表格中现实地雷位置...
& h1 ?4 W* R, U附件就是那个表格...如果版本不对就直接看代码部分自己复制过去也行..
% ^' u* e+ \$ T6 @顺便说,VBA简直反人类..MS为什么不出VBA.NET啊...大段的代码要自己写,而且抽象性巨差....3 X& w! N9 U! q+ i. T# g6 z/ B
3 e/ J5 `) z$ W6 ]# L2 L3 V$ y# C
MineSweeperTrainer.rar (22.27 KB, 下载次数: 6)
4 X: v4 |" L( s6 c, Q0 N- ^  l2 Q" M# o( ^* j" I7 A2 D
1.jpg : w* g7 B# h' E: X

/ k, x  k8 N! u0 M9 O+ g2 w  z- E& X! G, i; e
  1. 【控件】( O" @( }% R1 K( T# ?

  2. - k2 A/ P( N  h7 Q; N
  3. 窗体:frmMain
    % Q( R6 o7 j1 S, R" P$ V2 ~
  4. 按钮:btnCatchGame,btnRefresh+ \& C9 f) a& F8 o
  5. 选择框:chkGameTime
复制代码
; h2 g+ F& V4 T* z

* ]1 V' q+ f- l9 N& b* C+ m1 A% E" y3 m5 w8 U" R' y
) O; [( L/ v$ W5 Q+ i
  1. 【代码】2 @) d2 l3 o, {" l  z$ ~- R; T
  2. 6 W+ E- d* R7 \& p7 Q7 F
  3. ! r( r+ C4 ^" d' S( j/ g
  4. Option Explicit
    ' p% a+ V7 S' \
  5. ( e6 H  B+ V" k8 ^/ h8 d

  6. - d' ]" n7 s8 @' a& D
  7. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long, l! F* d! d, ~+ b' H$ ^) e$ b
  8. Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long/ }3 d+ s+ ^) W7 `% n$ {
  9. Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long6 V2 s, a/ o, {5 N9 N: @8 ?8 [
  10. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long8 f' s+ V  n- P2 N& v8 k/ U
  11. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    3 P8 E1 ?4 }1 k2 w0 L( m* K
  12. Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long$ \3 Z* d: {; h2 l& c& [  D' f

  13. ) O- h2 c: \$ w; F9 ]' h

  14. ' X: ?9 F# q( [- @2 y, j8 C" s
  15. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    1 R3 D- u6 x. L: w
  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; f8 k  e6 F# o4 t0 Z6 A
  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' O" T! G4 m7 W* }* A
  18. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long0 O; u* X. K, ^

  19. 4 Y5 @% S6 r( d

  20. # Z+ P5 V5 K# Z4 p+ E% z2 a
  21. Private Const TH32CS_SNAPPROCESS = &H2# o8 u. P+ J* J; I# Q$ y2 i
  22. Private Const TH32CS_SNAPmodule = &H8
    " \4 p/ V* T1 r- ?3 n- {
  23. Private Const CB_SHOWDROPDOWN = &H157
    , {7 z9 u0 J) }( o& ]
  24. Private Type moduleENTRY32
    ! i$ s7 s; S1 S' g" l* q$ N5 }& u
  25.     dwSize As Long
    1 V; W" [6 ~/ q5 s% Q/ d
  26.     th32ModuleID As Long9 ?7 c$ m0 B+ z9 H6 G
  27.     th32ProcessID As Long; B6 _, \" i( _* R" x3 r
  28.     GlblcntUsage As Long- m: E! q' w& Z0 `
  29.     ProccntUsage As Long: C2 |. U' c% P& r3 w/ f
  30.     modBaseAddr As Long
      v8 a1 v& m8 z2 v: x' \; T5 z
  31.     modBaseSize As Long
    , V% d! m2 k  ^# r0 B/ ~- o
  32.     hModule As Long
    : F6 z, z& [/ R
  33.     szModule As String * 256
    7 J" `9 ]* _, u% G6 v7 a
  34.     szExePath As String * 1024
    ; G* z* ~) ?( u" e" B8 g5 O
  35. End Type; P8 M4 {$ @4 Z2 H6 o

  36. 1 {2 q- T" ]! }# L2 y7 d. C
  37. Private Type PROCESSENTRY32
      |! z# I7 Z) ]9 c( |- d5 k
  38.     dwSize As Long% y$ S( u3 |( m+ ?4 k2 f) z: Y
  39.     cntUsage As Long2 n" V7 ?9 D6 M+ h' s
  40.     th32ProcessID As Long6 T! }- ?. _/ j% F
  41.     th32DefaultHeapID As Long
    ( N. d  Z6 `! D' ]* i
  42.     th32ModuleID As Long* k: y4 Y- ~6 y$ |1 ^
  43.     cntThreads As Long7 f: s/ d" _. B
  44.     th32ParentProcessID As Long
    ( V/ u; [" X  n: I% R+ k. Z9 p& ]
  45.     pcPriClassBase As Long& x) r# a( O, ?8 ~6 Q
  46.     dwFlags As Long
    4 [+ f: b* a6 U" y5 u% A8 M  Y; s* _5 Z
  47.     szExeFile As String * 10247 M; r# `( B2 X6 Y( p! F. }) e
  48. End Type/ d8 g0 b" T& _( q

  49. - o! O8 T6 @' r$ g: X3 B' L
  50. : l/ r3 Y  `" m

  51. 9 N; l6 O# ]- _
  52. Private Const PROCESS_ALL_ACCESS = &H1F0FFF% U0 N, c) Z7 h# k
  53. Private hProcess As Long
    ; i6 N' {8 Y2 M  {
  54. Private PID As Long5 \! L. @  u. ]" M
  55. 8 G$ }, r2 e4 c3 W. N' Q
  56. 7 k: x! B% _) v' g/ X
  57. Private Type asmNum
    ) c, O& m$ @' y# E
  58.     nuM1 As Byte  l# ], W# y$ M
  59.     nuM2 As Byte
    ' a& h9 N$ ]: E
  60.     nuM3 As Byte
    , v# Q. g/ E1 e8 F* N: r7 x; d
  61. End Type
    . H0 Q3 k* ?, {# E, Q  U
  62. ' K5 t3 M* o) ?" ~: r7 ]8 I
  63. Private adrTime As Long4 f: s% E1 C2 j$ Q; `
  64. Private adrMine As Long1 i; {8 b( z+ X1 q# f% _9 ?% z2 f  m

  65. - m. d. r8 Q1 Q& X% L( A6 P
  66. Private Function GetProcIdByName(ByVal ProcName As String) As Long
    % \0 W. F7 [' N* g) Y; u7 O
  67.     Dim PE32 As PROCESSENTRY32
    ! F1 q  ?0 y+ r8 e- H) A. e& Z
  68.     Dim Procid As Long+ t" A2 L: u% c( `" e9 \1 D* X( z
  69.     Dim hSnapShot As Long, Z$ [! ^. R, l8 x
  70.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPPROCESS, ByVal 0)
    3 F- X/ @; X( H; |' Z( h: {5 `, X
  71.     PE32.dwSize = LenB(PE32)
    $ X5 H8 l( t4 |3 `9 d7 W$ U" ^$ o" b
  72.     Process32First hSnapShot, PE328 @5 W  i2 x! `, R2 `9 B2 G
  73.     Do% z, U- [( R9 o4 p; r& n! l
  74.         If lstrcmpi(Trim$(ProcName), Trim$(PE32.szExeFile)) = 0 Then( W% s/ z: L/ j# w$ w6 {8 e4 ]
  75.             Procid = PE32.th32ProcessID* y5 E6 l9 f' J7 P; H2 r; a
  76.             Exit Do
    ) d4 E( ^$ L  u0 ]
  77.         End If0 J! O% G" z2 ?8 M- @+ C/ M  ^2 O
  78.         PE32.szExeFile = vbNullString
    * g7 Y8 L5 i) K; O  _! u+ u
  79.     Loop Until Process32Next(hSnapShot, PE32) = 0) B1 H- B( `* `( q7 Z: a
  80.     CloseHandle hSnapShot8 b0 G: [0 ]- o
  81.         GetProcIdByName = Procid
    4 S! t, e- r7 V
  82. End Function
    " o- e; D! S" _( x

  83. * Z& `! F% Y; o& v  {9 G
  84. * p+ O# i. ]- L# i) F

  85. ( ?1 \) z" t0 {" j5 d8 O
  86. Private Function GetModuleBaseByProcName(ByVal ModuleName As String) As Long
    8 C% b9 d' w' U0 ^

  87. : y4 C" A# H( Y+ W! {  H, n
  88.     Dim ME32 As moduleENTRY32, ModuleBase As Long
    9 w  B2 E$ p7 H5 D- j% T% _
  89.     Dim hSnapShot As Long
    $ u6 f' Z* |6 C( V" G% Z
  90.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPmodule, ByVal PID)* x. {- q, p" m6 [
  91.     ME32.dwSize = LenB(ME32), e$ ~1 q8 H+ Q* w4 i
  92.     module32First hSnapShot, ME32
    4 z# e) ?. n1 D/ v. a! i, B9 A
  93.     - P7 \: z3 }% j7 u2 f. \
  94.     Do# O! G5 {( i" t# U6 V2 x% G
  95.     ) _3 D5 D3 Y1 `6 e
  96.         If lstrcmpi(Trim$(ModuleName), Trim$(ME32.szModule)) = 0 Then2 \. v2 X: c3 _1 q
  97.             ModuleBase = ME32.modBaseAddr
    , L+ G; N; I5 G4 V. J/ Q. }/ A
  98.             Exit Do- _+ l/ G6 f& G! n  ]& ]
  99.         End If; b; j, e3 {/ i( J, j6 r
  100.         - ~* a& s, M% s
  101.         ME32.szModule = vbNullString4 I# T  h  p3 ?( ^: G. H0 I8 r3 r
  102.     5 k+ Z- g- \( A. E- Y6 a
  103.     Loop Until module32Next(hSnapShot, ME32) = 0
    ( Z* t" v) u+ _3 Q, y, d6 l# i
  104.     CloseHandle hSnapShot
    0 W' S5 T- _. v" l% g0 i
  105.     GetModuleBaseByProcName = ModuleBase6 f$ }  [- S  d7 F( z! r" G
  106. 3 [( `+ l% c) v* I7 I
  107. End Function6 F& O! i# @3 m' I2 B; M! f* o) B

  108. ; ~8 O9 t2 w# W& B( {5 W+ V3 e3 w; v

  109. : v: m) x) x! ~9 ~* T! r  b" Q1 _
  110. Private Function GetMemory(ByVal Adderss As Long, Optional Length As Byte = 4) As Long+ z& l. k, v% {& [5 ~. x* C, J9 ]
  111. ReadProcessMemory hProcess, Adderss, GetMemory, Length, 0- {& i& u7 o: i2 C  q! H6 E
  112. End Function
    ( s$ G: D5 S& W& z
  113. Private Sub SetMemoryAsm(ByVal Adderss As Long, NumVal As asmNum)5 a4 Q) z, P3 o* x0 V3 f8 T
  114. WriteProcessMemory hProcess, Adderss, NumVal, 3, 0
    8 G7 x! W) o2 Q% [) g8 M6 W
  115. End Sub" R) ]3 a- b5 \, E) |

  116. - d0 a+ l$ i" I& \+ f$ V7 w
  117. 7 p% d7 p/ t+ l: @5 h9 V
  118. Private Function FindGame() As Boolean
    ( k; k+ I4 A$ w1 H; k; o# N
  119.    
    2 T! t# I7 l# C" d+ X, {$ T
  120.     PID = GetProcIdByName("MineSweeper.exe")
    " X" F! P" t2 n1 X
  121.    
    + g. h% A7 H# K9 ~/ L3 Y7 f
  122.     Select Case PID
    1 B& X7 M, @2 ?* T/ p% u
  123.         Case 05 R; j% ]: f$ p$ D- d/ h
  124.             FindGame = False4 }2 ]  Y, _/ v
  125.         Case Else( S; s) X& }0 p6 \, V& S
  126.             Dim adrBase As Long7 T2 j9 h( a9 H( M2 d
  127.             adrBase = GetModuleBaseByProcName("MineSweeper.exe")
    2 \7 B1 a4 P* O9 N2 @: G/ S
  128.             adrTime = adrBase + &H21446
    % v0 e% X0 b, }* d3 n3 E
  129.             adrMine = adrBase + &H868B4
    8 V* C' S  o, G2 P- k* L+ |
  130.             FindGame = True* ?3 Q' K& w% L6 b; O5 V
  131.     End Select
    . |' S" x& Y1 P$ B
  132. End Function
    ' m! w7 x& w$ j% }1 Z' E3 z
  133.   C4 `7 A+ }0 n; h
  134. Private Sub TrainerState(ByVal State As Boolean)
    4 ]+ ?7 r0 @5 T( V7 J& ~+ N
  135.     chkGameTime.Enabled = State
    ' q) l+ S1 L# w, M
  136.     btnRefresh.Enabled = State
    2 f- l9 Y3 q5 ?
  137.     Select Case State
    / q/ t; n# G5 T' E
  138.         Case True
    ; _- R, \$ \% R3 R& b) a
  139.             btnCatchGame.Caption = "ReleaseGame"6 D/ ?* {) m( K- _
  140.         Case False
    1 L. O: b+ |# n% U
  141.             btnCatchGame.Caption = "CatchGame"8 j+ o: |+ L7 _; M; m
  142.             chkGameTime.Value = False
    ) j3 S! n. a7 B4 F- O" @9 _3 a" I
  143.     End Select7 v) E' r* w6 Z' p, @8 z0 P$ s
  144. End Sub
    " I- D' j* U" Y# z% E" L
  145. & B6 U) N" j% d6 [
  146. & Z; B0 k# V6 t4 b% ?- S# i; c
  147. Private Sub AsmState(ByVal State As Boolean)) P+ m% |1 W6 u1 X% n$ J
  148.     Dim asm As asmNum
    $ |! _# ?4 I0 _* [
  149.     Select Case State
    * G% ~' ]+ R; {6 R. J
  150.         Case True
    9 b; N; q4 D9 i) v$ G+ m3 r
  151.             asm.nuM1 = &H90
    0 g7 z& m6 q; s
  152.             asm.nuM2 = &H90
    , U: W( u( ~+ K% l* U9 z
  153.             asm.nuM3 = &H906 ^( W# N# y, u0 z" m- D
  154.         Case False
    ' S/ i' [! ^* {: n& K3 n
  155.             asm.nuM1 = &HD9
    ) s0 k( N  s4 C. J( T( U. a5 W
  156.             asm.nuM2 = &H58
    % i" @# \" r, D
  157.             asm.nuM3 = &H1C& j2 H0 g7 H0 [, x
  158.     End Select
    4 {( B: U6 N! N- C7 r8 B1 T
  159.     Call SetMemoryAsm(adrTime, asm)
    / m& d8 ?. @! V. X1 x& j
  160. End Sub
    4 y2 H3 y0 g/ x& `2 d  ~
  161. 8 D% k+ V! f0 |- F1 g. Z
  162. * T. w+ C3 W4 }/ y
  163. Private Sub chkGameTime_Click()
    5 }4 o$ @1 d: @; e( a2 f# m
  164.    AsmState (chkGameTime.Value)9 Q0 K: Q$ B1 L1 a) e
  165. End Sub
    6 M  C; [, {- j- H
  166. $ m  }  o* K3 N, p( M
  167. - h$ w4 O# u+ b  L7 K
  168. Private Sub isOpen(ByVal State As Boolean)
    " l+ L3 I) z. I; m) G/ |. O
  169.         Select Case State
    4 k- |$ u! Z; p8 d
  170.         Case True
    2 z5 u" Z- ~3 G# y% H; Q8 m
  171.             If FindGame = True Then" p- H; {9 T% J1 x
  172.                 hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PID)+ S- M; d1 j# ^- i& |
  173.                 TrainerState (True)3 f: L% P5 `6 z4 S2 F0 Y
  174.             End If
    % l* B! {2 Q* K/ @$ f2 h- |" H
  175.         Case False
    - j6 R5 B0 G" K
  176.             If FindGame = True Then
    , `: Y* B* l) p% J% C2 l& _+ ]
  177.                AsmState (False)
    * O/ Y: {* m7 Y. k
  178.                CloseHandle hProcess
    ! v, Q7 |, U: q
  179.             End If* P0 v9 L# ]- \5 ?* P( e! P
  180.     End Select
    # P( n$ x- w- j% R2 |
  181. End Sub  g' f2 e' a" b! [" q/ ~7 C
  182. 0 ~5 G# m# h: B7 m: U$ V: F) g

  183. 4 R. R0 `2 {! A' a) Q; [6 E
  184. Private Sub btnCatchGame_Click()
    % I+ p/ {5 }, P7 \
  185.     Select Case btnCatchGame.Caption
    6 B( I4 k# q" s* c3 \
  186.         Case "CatchGame"$ l8 \+ {% G$ r" b2 |7 f
  187.             isOpen (True)
    : U5 j& ?0 y& d
  188.         Case "ReleaseGame"
    / J* @9 A# U0 f; X( J# }4 F
  189.             isOpen (False)
    & N4 @. P# ~" `
  190.             TrainerState (False)0 y- j9 S/ z7 ^6 `: V1 u
  191.     End Select
    % Q/ w8 \$ p% e% \, B; g
  192. End Sub
    - e9 N0 H( h5 ~

  193. # f8 ?1 `- C. F
  194. Private Sub btnRefresh_Click()
    # e4 E- W- L; R

  195. / R1 \3 u5 j% u7 Y+ E9 S7 W0 }% L
  196.     Dim mineColumn As Byte, mineLine As Byte
    % o- Z$ |$ p2 V$ a% n
  197.     Dim adrPoint As Long, adrTemp As Long, adrColumn As Long
    5 T; e1 T+ S% U9 i$ P; W0 K7 C
  198.     Dim i As Byte, j As Byte
    ; I3 z( k$ L* ^' a: ]

  199. - }1 o3 L. x& Z' _, Q
  200.    
    % s6 E& }8 P/ {: `8 |
  201.    
      p& f- D. F/ I1 S0 |
  202.     btnRefresh.Enabled = False% N; c( h. g( R7 U/ A( C, v9 g
  203.     " t- u4 Y& o& P' `8 N2 |( ?& ?
  204.     adrTemp = GetMemory(adrMine); M, f5 m) a" b
  205.     adrPoint = GetMemory(adrTemp + &H10)
    5 k6 a& U" j5 Z: D# v# K
  206.    
    : b* T( H$ U1 B2 K5 g+ ?
  207.     mineLine = GetMemory(adrPoint + &H8) - 15 q0 \7 b% O0 B/ o; M3 V& ?( D
  208.     mineColumn = GetMemory(adrPoint + &HC) - 1
    3 i7 w2 P: @* a& U* _
  209.     ) R* u" o. `9 w# x* E+ `3 O, H  D
  210.     adrPoint = GetMemory(adrPoint + &H44)4 }; g" [- @! H% O
  211.     adrPoint = GetMemory(adrPoint + &HC)
    ) T1 B# V- i2 q' J3 a
  212.    
    # ~) @( P5 A2 m- O) M5 r9 X
  213.     9 g  [" f( Y* O. Z9 K/ T- C: C
  214.       u7 h* ?: `; U( S
  215.     For i = 0 To 302 n% d8 L8 k1 \1 O& `
  216.         adrColumn = GetMemory(adrPoint + i * 4)8 ]  Z2 Y) E% J
  217.         adrColumn = GetMemory(adrColumn + &HC)
    2 i4 x' o" G+ {' h' E3 l0 A
  218.         For j = 0 To 23
    7 T- i. d" D& h
  219.             If i > mineColumn Or j > mineLine Then
    . f2 k% T9 W# B# D6 G
  220.                 Sheet1.Cells(j + 1, i + 1) = ""2 a$ ]8 w! V$ e% |
  221.             Else. S, j6 K1 `6 e
  222.                 Sheet1.Cells(j + 1, i + 1) = GetMemory(adrColumn + j, 1)1 F3 ]$ E4 L0 X/ k: U2 Q8 W
  223.             End If  O! R! T$ T) y0 ^
  224.         Next j
    . ?* e$ d  v. S: e- f/ u
  225.     Next i
    ) M7 f3 |8 p% \) T+ j
  226.     btnRefresh.Enabled = True  f9 r7 w# C* s7 C. Z7 h' _) a
  227.     8 B9 h& G! ]- k5 ]; Z. T+ O/ e
  228.    
    : i8 K# b- h* M4 Q" ^! Y
  229. End Sub" f# i4 B8 q# O$ k* t+ d( o+ i8 X
  230. , c6 M4 H& i( |- C
  231. Private Sub UserForm_Initialize()
    # l7 E4 Z: p) p  g* q$ M7 F* V
  232.     TrainerState (False)
    8 O3 t2 _8 f3 r2 Y6 L8 N
  233.     Sheet1.Cells(1, 2) = 1( b9 f! r$ w, |; I4 z; Z
  234. End Sub
    8 j/ c/ I4 H6 L; o- n( A9 K
  235. ( G: b. f# p2 I$ Y, E
  236. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer), ^/ x0 ?$ U8 p
  237.     isOpen (False)  M+ z2 z9 @! v( Y, _1 j/ Y1 A& @
  238. End Sub; i5 m# I0 A( l7 }
复制代码
4 f9 d# l' h( d' m1 v0 U9 O
; g4 O! o  |0 F7 }% x2 b" {

8 T. q5 V% w/ Z2 t: ^7 U9 \, {9 Z9 \5 K& |& p( x$ H2 T
发表于 2014-6-21 18:42 | 显示全部楼层
EXCEL2010盡頭.jpg
7 _8 F4 y1 k, i% G' M# @事實證明Excel是有盡頭的﹗(謎:你是閒到甚麼程度?﹗)% U& o8 [$ R3 W
发表于 2014-6-20 12:29 | 显示全部楼层
excel在我們這裡是必學的…
发表于 2014-6-20 12:45 | 显示全部楼层
厉害还有源码,学习! D: P6 d  j2 Y4 u! a. W( ^% }
excel我只拿来做最简单的表格。。
发表于 2014-6-20 18:24 | 显示全部楼层
完全看不懂!!!!。。。7 f. C! N4 X, j$ i" W0 w

0 I; ~7 D1 f- ]不明觉厉只能跪
发表于 2014-6-20 18:49 | 显示全部楼层
尗又 发表于 2014-6-20 18:24  {! ^! |! i- P9 D: ]: R
完全看不懂!!!!。。。
7 D- ?8 s) D0 O1 L- [1 y, f4 N
- R2 |- R! h+ p; q不明觉厉只能跪
5 I+ p, {1 @0 @% E& L' Y: n
這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…9 e, M3 l; O6 a! |( W% o
发表于 2014-6-20 19:00 | 显示全部楼层
NataieChan 发表于 2014-6-20 18:496 w7 q) W* {% H$ r5 Z) s
這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…

( ^& |& R; I8 q/ L" v哈哈那是,因为我对修改器的东西比较感兴趣啊
1 ]7 w( m8 n: P, _
发表于 2014-6-20 20:32 | 显示全部楼层
止慈 发表于 2014-6-20 19:00
/ t5 u- i0 r8 r  t哈哈那是,因为我对修改器的东西比较感兴趣啊

/ M: Y+ w9 v/ m/ S* a- Z4 U9 e莫非你勤制修改器的目的是因為懶得自己去玩…1 {0 q, t' N3 K% Z# n
发表于 2014-6-20 20:57 | 显示全部楼层
NataieChan 发表于 2014-6-20 20:32
+ I3 y9 n& ]0 ?莫非你勤制修改器的目的是因為懶得自己去玩…
* L6 @+ ^; Q, P" ]  q7 @+ P+ b( x
不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、跑进场景、走一段路、去点制作人、看目前有什么通告——这里还只是看到目前有什么通告,还不一定想接,也不一定能接,或者现在就能接。玩得烦了就自己琢磨减少一下流程,毕竟游戏是要有乐趣,但鼠标点多了也太繁琐。
, d7 _5 l. \; c6 I而且我玩游戏是修改派,不修改无乐趣。。
/ q( B/ m- c9 A% w$ T4 v: @* Z- q/ k' K+ C6 Q8 z/ s2 ]4 e7 a' `9 A
有点跑题了。。再回到excel上,小N你们学校里都学用excel做什么?我会的只有最基本的表格和加加减减求和比较之类的。。
5 K8 w3 P% O1 P1 ^' P9 B
% Y$ |" I. c/ q& f. }+ u3 a再想起来,我因为需要,想过用excel设计一个东西,大概也是存一定数据然后按自己需求可以随机提取之类的,搜到一篇文章还提供了源码的,结果源码链接无效了。。
; }3 W  N' o, z& l5 D' _- T9 Q' @0 ~& O  x% U% F
# H3 s9 @- c6 C1 @6 c) O* D

" Y) l2 N% V% [) a止慈 于 2014-6-20 21:12:09 补充以下内容
" U' m' B6 i2 Z6 T% U3 Y
5 U" |. t6 y; n% S求指教。。打开附件excel,启用宏以后,那个窗体怎么出现。。我编辑宏能看到源代码,excel不会那么多不知道怎么让那个窗体出现。。
  b7 R& J+ g; L( }5 |& @) s) k6 C3 [* z  K( A( A, j* ^; b8 |
在我这里
# ]# E+ E% v9 b& `6 [
  1. mineLine = GetMemory(adrPoint + &H8) - 1
复制代码

0 r  g% @. _  |" A% v6 a1 S: ]$ }会溢出
1 F  S7 h' N! r' s  F) U! T7 a. ~# H. V
不过没关系,只是做着玩玩的,不用修~我是试着运行了一下然后出了这个错误,就顺便说一下
/ e$ X9 c! I& t' `, d# w6 ^: v# D, p( n7 g" q, m9 j

% N) `8 g% X! |5 ?! `
发表于 2014-6-20 21:15 | 显示全部楼层
止慈 发表于 2014-6-20 20:57" q6 M& B" ?( \) k1 g+ t. k
不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、 ...

0 w7 \; c; P$ C$ v& W2 X2 B9 M: S做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…
; C* W* g9 Y$ z  h  q
; D2 H: q0 k, B+ j1 x( y6 G
% ^, E5 M. Q  fNataieChan 于 2014-6-20 21:19:08 补充以下内容5 b! {3 o6 `1 V3 F( Y
: h5 c9 z- ?8 H& e4 T: Z
做各種的圖…
发表于 2014-6-20 21:23 | 显示全部楼层
NataieChan 发表于 2014-6-20 21:15& q# h/ ^) b3 b% ?2 H: V
做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…

: I9 P* S% m/ ~- h[strike]做什么奇怪的东西说出来让我们乐一乐[/strike]0 Y& O* C0 v9 u9 O3 G8 w0 A
6 P( J3 i3 C  P3 W2 j
排名还好啊,不过也许你们的是比较复杂的排名,那就麻烦点吧。。
! h, j0 o: K, {  l6 ^! G0 J5 H  }& _: ?  \
以下是编辑:
3 I9 Y1 E* Z$ x9 F( P0 g. n( p" T0 l; W
刚刚没看到你补充的。做各种的图的话确实比较麻烦。。" W7 V. [% y8 Q9 n% F
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 15:36

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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