qq记牌器2014.5.12.docx_第1页
qq记牌器2014.5.12.docx_第2页
qq记牌器2014.5.12.docx_第3页
qq记牌器2014.5.12.docx_第4页
qq记牌器2014.5.12.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Net; using System.Net.Sockets; using System.Threading; namespace 双?扣?记?牌?器网?络?版? public partial class Form1 : Form public Form1() InitializeComponent(); DllImport(kernel32.dll ) static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress, out int lpBuffer, int nSize, out int lpNumberOfBytesRead); / 进?程句?柄 读出?数y据Y的?地?址 存?放?读取?数y据Y的?地?址 读出?的?数y据Y大小? 数y据Y的?实际大小? DllImport(kernel32.dll) public static extern int OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); / 访?问权限T 继承D标志? 进?程ID。 DllImport(user32.dll, EntryPoint = FindWindow) private extern static IntPtr FindWindow(string lpClassName, string lpWindowName); / DllImport(User32.dll, CharSet = CharSet.Auto) public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); int Play_Card_ID; int Play_Card_Process; int Play_Card_readByte; string output = new string , A, 2, 3, 4, 5, 6, 7, 8, 9, 0, J, Q, K, w, W ; int Remain_Card_Num_Adress_E = 0x46b130;/东? 地?址 int Remain_Card_Num_Adress_S = 0x46b6dc;/南? int Remain_Card_Num_Adress_W = 0x46bc88;/西 int Remain_Card_Num_Adress_N = 0x46c234;/北 int E_data = new int55;/ 内存?数y据Y int S_data = new int55; int W_data = new int55; int N_data = new int55; int E_Former_NUM=27; int S_Former_NUM=27; int W_Former_NUM=27; int N_Former_NUM=27; /初?始?牌?数y int updataNUM_E; int updataNUM_S; int updataNUM_W; int updataNUM_N; int mysite; int remain=new int 15 8,8,8,8,8,8,8,8,8,8,8,8,8,2,2; bool interrupt; / / void qingling() label9.Text = ; label10.Text = ; label11.Text = ; label12.Text = ; label13.Text = ; label14.Text = ; label15.Text = ; label16.Text = ; label17.Text = ; label18.Text = ; label19.Text = ; label20.Text = ; label21.Text = ; label22.Text = ; label23.Text = ; for (int i = 0; i remain0; i+) label9.Text = output0 + 1 + label9.Text; for (int i = 0; i remain1; i+) label10.Text = output0 + 2 + label10.Text; for (int i = 0; i remain2; i+) label11.Text = output0 + 3 + label11.Text; for (int i = 0; i remain3; i+) label12.Text = output0 + 4 + label12.Text; for (int i = 0; i remain4; i+) label13.Text = output0 + 5 + label13.Text; for (int i = 0; i remain5; i+) label14.Text = output0 + 6 + label14.Text; for (int i = 0; i remain6; i+) label15.Text = output0 + 7 + label15.Text; for (int i = 0; i remain7; i+) label16.Text = output0 + 8 + label16.Text; for (int i = 0; i remain8; i+) label17.Text = output0 + 9 + label17.Text; for (int i = 0; i remain9; i+) label18.Text = output0 + 10 + label18.Text; for (int i = 0; i remain10; i+) label19.Text = output0 + 11 + label19.Text; for (int i = 0; i remain11; i+) label20.Text = output0 + 12 + label20.Text; for (int i = 0; i remain12; i+) label21.Text = output0 + 13 + label21.Text; for (int i = 0; i remain13; i+) label22.Text = output0 + 14 + label22.Text; for (int i = 0; i remain14; i+) label23.Text = output0 + 15 + label23.Text; void check(int remain, int data) for (int i = 28; i 55; i+) remaindatai-1-; void start() read(Remain_Card_Num_Adress_E, E_data); read(Remain_Card_Num_Adress_S, S_data); read(Remain_Card_Num_Adress_W, W_data); read(Remain_Card_Num_Adress_N, N_data); for (int i = 0; i 13; i+) remaini = 8; remain14 = 2; remain13 = 2; if (E_data0 = 27 & W_data0 = 27) & (S_data0 = 27 & N_data0 = 27)/ if (E_data28 != 0) mysite = 1; if (S_data28 != 0) mysite = 2; if (W_data28 != 0) mysite = 3; if (N_data28 != 0) mysite = 4; switch (mysite) case 1: label1.Text = 己o; label2.Text = 左; label3.Text = 对?; label4.Text = 右; check(remain, E_data); break; case 2: label1.Text = 右; label2.Text = 己o; label3.Text = 左; label4.Text = 对?; check(remain, S_data); break; case 3: label1.Text = 对?; label2.Text = 右; label3.Text = 己o; label4.Text = 左; check(remain, W_data); break; case 4: label1.Text = 左; label2.Text = 对?; label3.Text = 右; label4.Text = 己o; check(remain, N_data); break; timer1.Enabled = true; timer2.Enabled = false; else label5.Text = ; label6.Text = ; label7.Text = ; label8.Text = ; textBox1.Text = ; textBox2.Text = ; textBox3.Text = ; textBox4.Text = ; label1.Text = 恭; label2.Text = 喜2; label3.Text = 发; label4.Text = 财?; void read(int Remain_Card_Num_Adress,int Play_Card_Num ) IntPtr Play_Card_hwnd = FindWindow(#32770, 双?扣?); if (Play_Card_hwnd = IntPtr.Zero) interrupt = true; GetWindowThreadProcessId(Play_Card_hwnd, out Play_Card_ID); Play_Card_Process = OpenProcess(0x0010 | 0x0020, false, Play_Card_ID); int gap = 0; /读取?剩余手?牌?数y ReadProcessMemory(Play_Card_Process, Remain_Card_Num_Adress + gap, out Play_Card_Num0, 1, out Play_Card_readByte); /最?新?一?次?的?出?牌? 记?录?最?多记?录?27张?;?比如?554433 对?应| 数y组1-6 gap = 0x15; for (int i = 1; i 28; i+) ReadProcessMemory(Play_Card_Process, Remain_Card_Num_Adress + gap, out Play_Card_Numi, 1, out Play_Card_readByte); gap = gap + 0x00000008; /自?己o出?牌?顺3序及剩余牌?记?录? 记?录?最?多记?录?27张? gap = 0x6f; for (int i = 28; i 55; i+) ReadProcessMemory(Play_Card_Process, Remain_Card_Num_Adress - gap, out Play_Card_Numi, 1, out Play_Card_readByte); gap = gap + 0x00000008; private void timer1_Tick(object sender, EventArgs e) read(Remain_Card_Num_Adress_E, E_data); read(Remain_Card_Num_Adress_S, S_data); read(Remain_Card_Num_Adress_W, W_data); read(Remain_Card_Num_Adress_N, N_data); if (!interrupt) textBox1.Text = E_data0.ToString(); textBox2.Text = S_data0.ToString(); textBox3.Text = W_data0.ToString(); textBox4.Text = N_data0.ToString(); updataNUM_E = E_Former_NUM - E_data0;/更新?数y据Y量? 牌?数y之?差? updataNUM_S = S_Former_NUM - S_data0; updataNUM_W = W_Former_NUM - W_data0; updataNUM_N = N_Former_NUM - N_data0; E_Former_NUM = E_data0; S_Former_NUM = S_data0; W_Former_NUM = W_data0; N_Former_NUM = N_data0; if (E_data0 = 27) label5.Text = ; else if (E_data0 = 0 & W_data0 = 0) | (S_data0 = 0 & N_data0 = 0)/ label9.Text = AAAAAAAA; label10.Text = 22222222; label11.Text = 33333333; label12.Text = 44444444; label13.Text = 55555555; label14.Text = 66666666; label15.Text = 77777777; label16.Text = 88888888; label17.Text = 99999999; label18.Text = 00000000; label19.Text = JJJJJJJJ; label20.Text = QQQQQQQQ; label21.Text = KKKKKKKK; label22.Text = ww; label23.Text = ww; for (int i = 0; i 13; i+) remaini = 8; remain14 = 2; remain13 = 2; timer1.Enabled = false; timer2.Enabled = true; goto vav; for (int i = 0; i 0) remainE_datai + 1 - 1-; if (updataNUM_E != 0) label5.Text = label5.Text + ; qingling(); if (S_data0 = 27) label6.Text = ; else if (E_data0 = 0 & W_data0 = 0 )| (S_data0 = 0 & N_data0 = 0)/ for (int i = 0; i 13; i+) remaini = 8; remain14 = 2; remain13 = 2; timer1.Enabled = false; timer2.Enabled = true; goto vav; for (int i = 0; i 0) remainS_datai + 1 - 1-; if (updataNUM_S != 0) qingling(); label6.Text = label6.Text + ; if (W_data0 = 27) label7.Text = ; else if (E_data0 = 0 & W_data0 = 0) | (S_data0 = 0 & N_data0 = 0)/ for (int i = 0; i 13; i+) remaini = 8; remain14 = 2; remain13 = 2; timer1.Enabled = false; timer2.Enabled = true; goto vav; for (int i = 0; i 0) remainW_datai + 1 - 1-; if (updataNUM_W != 0) qingling(); label7.Text = label7.Text + ; if (N_data0 = 27) label8.Text = ; else if (E_data0 = 0 & W_data0 = 0) | (S_data0 = 0 & N_data0 = 0)/ for (int i = 0; i 13; i+) remaini = 8; remain14 = 2; remain13 = 2; timer1.Enabled = false; timer2.Enabled = true; goto vav; for (int i = 0; i 0) remainN_data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论