跪求一个QQ游戏2Dqq桌球瞄准器最新瞄准器,要...

qq游戏2d桌球瞄准器 有时候对别人好,别人一样会在背地捅你一刀
  1、&太漂亮的女人最后总是孤独一人,由于她不肯向爱情让步;太帅气的男人最后总是落在不太英俊的女人手上,因?他向生涯妥协。因而太漂亮的女人和太帅气的男人总是无奈久长一起的,因为他们都习惯被缭绕被取悦。太漂亮的女人,是堪折的花,越早碰到越好;太帅气的男人,是待熟的果,最好别要太早赶上。&  ps,幸好我不太美丽,哈哈&yeah  2、&小时候,盼望自己快点长大,长大了,却发明丧失了童年;独身时,开端爱慕恋人的甜美,恋爱时,悼念独身时的自在。良多事物,不得到时总感到美妙,得到之后才开始清楚:&咱们得到的同时也在失去。&  ps,有得有失,漠然面对  3、&在爱的世界里,没有谁对不起谁,只有谁不理解爱护谁。 可能说出的委屈便不算冤屈,可以抢走的爱人便不算爱人。 不说出委屈就只能委屈自己,不放走不爱你的人就得不到爱你的人。&  ps,在流泪的时候觉得委屈,其实心里已经缓缓学会顽强  4、&人生的路上,我们都在奔驰,我们总在赶超一些人,也总在被一些人超越。人生的要义,一是观赏沿途的风景,二是到达遥远的终点;人生的秘诀,寻找一种最合适自己的速度,莫因疾进而不堪重荷,莫因缓慢而空耗生命;人生的快活,走自己的路,看自己的景,超出他人不自得,别人超越不失志。&  ps,在失望时,要仰头看看天,想想存在的意思  5、&有一天,友情跟恋情碰见。爱情问友谊:世上有我了,为什么还要有你的存在?友情笑着说:爱情会让人们流泪,而友情的存在就是帮人们擦干眼泪!&  ps,秤子打心眼里最器重友人,哪怕不接洽,未几言,实在也会很依附  6、&我很爱你,却不晓得该如何凑近你,所以认为分开也是能够的。并没有什么不同,成果反正都是这样,是好是坏都不重要。主要的是我曾经迷恋你,就像我留恋一把晚清的雕花椅。&  ps,安妮的话老是让人在觉得暖和的同时有一丝肉痛,爱是一门要消耗毕生去学习、经营的学识  7、&我想给你幸福,却走不进你的世界。我想用我的全世界来换取一张通往你的世界的入场券,不外,那只不过是我的两厢情愿罢了。我的世界,你不在乎;你的世界,我被驱赶。我真的爱好你,闭上眼,认为我能忘却,但流下的眼泪,却没有骗到自己。&  ps,许可自己,要单独蒙受这所有。  8、&不要让幸福擦肩而过:最懂你的人,总是会始终在身边守护你,不让你有一丝的委屈;真正爱你的人,兴许不会说很多爱你的话,却会做许多爱你的事。假如发现身边有这样的人,请你好好珍爱&&幸福不会时时等着你,爱你的人和你爱的人不是随时可以呈现,好好掌握,不要让自己和幸福擦肩而过&  ps,等待懂我的人  9、&人生最美最不能逊色的景致应当是努力。努力是人生的一种精力状况,,是对性命的一种赤子之情。努力是占有之母,领有是努力之子,二心尽力堪称条条大路通罗马。所以,与其划定自己必定要成为一个什么样的人物,取得什么货色,不如磨难本人做一个努力的人。&  ps,早就该明确,最美的不是胜利的那一刻,而是事后回忆斗争进程中的艰苦  10、&人生,没有永远的伤痛,没有过不去的坎。仍是让我们学学杨柳,看似纤弱却坚韧,暴风吹一直,;太坚强的树干,却在风中折枝。学会放弃,学会承受,学会刚强,学会微笑,那是一类别样的漂亮,!恰当的废弃,是人生优雅的回身。&  ps,没有过不去的坎,让自己逾越的姿态美一点。
请各位遵纪守法并注意语言文明用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器_ASP.NET技巧_动态网站制作指南
用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器
来源:人气:890
平时不怎么玩,有时消遣就玩玩里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个&外挂&。说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的软件,有点违法的意思,况且自己还没有能力去那么做,所以自己还是弄个瞄准器,做做弊,过下小瘾,同时也提高一下自己的编程能力。
起初(也就是半年前),自己尝试做一个瞄准器的初始版本,用C#做,想法很简单:
Step1.把鼠标移到洞口,获取鼠标位置;
Step2.将鼠标放到要击打的球的圆心上,获取鼠标当前位置
Step3.根据进球时三点共线的原则按照球的半径自动将鼠标移动到准确的击球点。
示意图如下:
于是当初就按照这个想法做了,开始给自己做了个C#版,调用Windows API中的GetDesktopWindow,GetWindowDC,SetCursorPos三个函数,经过简单的数学运算,就基本实现了功能。代码如下:
Csharp代码&
using&System.D&&
using&System.Windows.F&&
using&System.W&&
using&System.Runtime.InteropS&&
namespace&TaiqiuGua&&
&&&&public&partial&class&Form1&:&Form&&
&&&&&&&&const&int&ra=25;&&
&&&&&&&&[DllImport("user32.dll")]&&
&&&&&&&&static&extern&IntPtr&GetDesktopWindow();&&
&&&&&&&&[DllImport("user32.dll")]&&
&&&&&&&&static&extern&IntPtr&GetWindowDC(IntPtr&hWnd);&&
&&&&&&&&[DllImport("user32.dll")]&&
&&&&&&&&static&extern&bool&SetCursorPos(int&X,&int&Y);&&
&&&&&&&&public&Form1()&&
&&&&&&&&{&&
&&&&&&&&&&&&InitializeComponent();&&
&&&&&&&&}&&
&&&&&&&&Point&startP;&&
&&&&&&&&Point&endP;&&
&&&&&&&&&&
&&&&&&&&ivate&void&Form1_KeyDown(object&sender,&KeyEventArgs&e)&&
&&&&&&&&{&&
&&&&&&&&&&&&switch(e.KeyData)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&case&Keys.F1:&&
&&&&&&&&&&&&&&&&&&&&startP=Control.MouseP&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.F2:&&
&&&&&&&&&&&&&&&&&&&&endP&=&Control.MouseP&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D1:&&
&&&&&&&&&&&&&&&&&&&&int&x1&=&(int)(endP.X&+&ra&*&((endP.X&-&startP.X)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y1&=&(int)(endP.Y&+&ra&*&((endP.Y&-&startP.Y)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x1,&y1);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D2:&&
&&&&&&&&&&&&&&&&&&&&int&x2&=&(int)(endP.X&-&ra&*&((-endP.X&+&startP.X)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y2&=&(int)(endP.Y&+&ra&*&((endP.Y&-&startP.Y)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x2,&y2);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D3:&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&int&x3&=&(int)(endP.X&+&ra&*&((endP.X&-&startP.X)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y3&=&(int)(endP.Y&-&ra&*&((-endP.Y&+&startP.Y)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x3,&y3);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D4:&&
&&&&&&&&&&&&&&&&&&&&int&x4&=&(int)(endP.X&-&ra&*&((-endP.X&+&startP.X)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y4&=&(int)(endP.Y&-&ra&*&((-endP.Y&+&startP.Y)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x4,&y4);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&GC.Collect();&&
&&&&&&&&}&&
使用时,只需要激活瞄准器窗口,按F1,F2获取鼠标位置,再根据洞口位置分别选按1、2、3、4数字键就行。
经过N次试验,成功率还挺高,只是有时候手动放置鼠标到被击打球圆心会出现误差,导致击球不准,当然,后来我赢了很多场比赛(嘿嘿,有点不道德!)。
再后来,又用C写了一遍,给同学用了。代码如下:
#include&&windows.h&&&
#include&&math.h&&&
int&ra=26;&&
int&flag=0;&&
POINT&startP,endP;&&
int&x5,y5,x2,y2,x3,y3,x4,y4;&&
LRESULT&CALLBACK&WndProc&(HWND,&UINT,&WPARAM,&LPARAM)&;&&
int&WINAPI&WinMain&(HINSTANCE&hInstance,&HINSTANCE&hPrevInstance,PSTR&szCmdLine,&int&iCmdShow)&&
&&&&static&TCHAR&szAppName[]&=&TEXT&("GUA")&;&&
&&&&HWND&hwnd&;&&
&&&&MSG&msg&;&&
&&&&WNDCLASS&wndclass&;&&
&&&&wndclass.style&=&CS_HREDRAW&|&CS_VREDRAW&;&&
&&&&wndclass.lpfnWndProc&=&WndProc&;&&
&&&&wndclass.cbClsExtra&=&0&;&&
&&&&wndclass.cbWndExtra&=&0&;&&
&&&&wndclass.hInstance&=&hInstance&;&&
&&&&wndclass.hIcon&=&LoadIcon&(NULL,&IDI_)&;&&
&&&&wndclass.hCursor&=&LoadCursor&(NULL,&IDC_ARROW)&;&&
&&&&wndclass.hbrBackground&=&(HBRUSH)&GetStockObject&(WHITE_BRUSH)&;&&
&&&&wndclass.lpszMenuName&=&NULL&;&&
&&&&wndclass.lpszClassName&=&szAppName&;&&
&&&&if&(!RegisterClass&(&wndclass))&&
&&&&&&&&MessageBox&(&NULL,&TEXT&("Program&requires&Windows&NT!"),&&
&&&&&&&&&&&&szAppName,&MB_ICONERROR)&;&&
&&&&&&&&return&0&;&&
&&&&&&&&hwnd&=&CreateWindow&(szAppName,&TEXT&("Programmed&By&DC"),&&
&&&&&&&&&&&&WS_OVERLAPPEDWINDOW,&&
&&&&&&&&&&&&CW_USEDEFAULT,&CW_USEDEFAULT,&&
&&&&&&&&&&&&CW_USEDEFAULT,&CW_USEDEFAULT,&&
&&&&&&&&&&&&NULL,&NULL,&hInstance,&NULL)&;&&
&&&&&&&&ShowWindow&(hwnd,&iCmdShow)&;&&
&&&&&&&&SetForegroundWindow(hwnd);&&
&&&&&&&&MoveWindow(hwnd,100,100,200,200,TRUE);&&
&&&&&&&&UpdateWindow&(hwnd)&;&&
&&&&&&&&while&(GetMessage&(&msg,&NULL,&0,&0))&&
&&&&&&&&{&&
&&&&&&&&&&&&TranslateMessage&(&msg)&;&&
&&&&&&&&&&&&DispatchMessage&(&msg)&;&&
&&&&&&&&}&&&&&&&&&
&&&&&&&&return&msg.wParam&;&&
void&Draw(HWND&hwnd,LPCSTR&lpString)&&
&&&&HDC&hdc&;&&&&
&&&&PAINTSTRUCT&ps&;&&&&
&&&&RECT&rect&;&&&
&&&&hdc&=&BeginPaint&(hwnd,&&ps)&;&&&&
&&&&GetClientRect&(hwnd,&&rect)&;&&&&
&&&&DrawText&(hdc,&lpString,&-1,&&rect,&&DT_SINGLELINE&|&DT_CENTER&|&DT_VCENTER)&;&&&&
&&&&EndPaint&(hwnd,&&ps)&;&&&
&&&&ReleaseDC(hwnd,hdc);&&
LRESULT&CALLBACK&WndProc&(HWND&hwnd,&UINT&message,&WPARAM&wParam,LPARAM&lParam)&&
&&&&HBRUSH&hBrush&;&&
&&&&HDC&hdc&;&&
&&&&PAINTSTRUCT&ps&;&&
&&&&RECT&rc&;&&
&&&&switch&(message)&&
&&&&&&&&case&WM_CREATE:&&
&&&&&&&&&&&&return&0&;&&
&&&&&&&&case&WM_PAINT&:&&
&&&&&&&&&&&&return&0&;&&
&&&&&&&&case&WM_KEYDOWN:&&&&
&&&&&&&&&&&&switch&(wParam)&&&&
&&&&&&&&&&&{&&&&
&&&&&&&&&&&&case&VK_F1:&&&&
&&&&&&&&&&&&&&&&&&&&GetCursorPos(&startP);&&
&&&&&&&&&&&&&&&&&&&&flag=1;&&
&&&&&&&&&&&&&&&&&&&&InvalidateRect&(hwnd,&NULL,&TRUE)&;&&
&&&&&&&&&&&&&&&&&&&&Draw(hwnd,"第1点已锁定!");&&
&&&&&&&&&&&&&&&&&&&&break&;&&&&
&&&&&&&&&&&&case&VK_F2:&&&&
&&&&&&&&&&&&&&&&&&&&GetCursorPos(&endP);&&
&&&&&&&&&&&&&&&&&&&&flag=2;&&
&&&&&&&&&&&&&&&&&&&&InvalidateRect&(hwnd,&NULL,&TRUE)&;&&
&&&&&&&&&&&&&&&&&&&&Draw(hwnd,"第2点已锁定!");&&
&&&&&&&&&&&&&&&&&&&&break&;&&&
&&&&&&&&&&&&case&0x31:&&&
&&&&&&&&&&&&&&&&&&&&x5&=&(int)(endP.x&+&ra&*&((endP.x&-&startP.x)&/&sqrt((endP.x&-&startP.x)&*&(endP.x&-&startP.x)&+&(endP.y&-&startP.y)&*&(endP.y&-&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&y5&=&(int)(endP.y&+&ra&*&((endP.y&-&startP.y)&/&sqrt((endP.x&-&startP.x)&*&(endP.x&-&startP.x)&+&(endP.y&-&startP.y)&*&(endP.y&-&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x5,&y5);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&case&0x32:&&&
&&&&&&&&&&&&&&&&&&&&x2&=&(int)(endP.x&-&ra&*&((-endP.x&+&startP.x)&/&sqrt((-endP.x&+&startP.x)&*&(-endP.x&+&startP.x)&+&(endP.y&-&startP.y)&*&(endP.y&-&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&y2&=&(int)(endP.y&+&ra&*&((endP.y&-&startP.y)&/&sqrt((-endP.x&+&startP.x)&*&(-endP.x&+&startP.x)&+&(endP.y&-&startP.y)&*&(endP.y&-&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x2,&y2);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&case&0x33:&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&x3&=&(int)(endP.x&+&ra&*&((endP.x&-&startP.x)&/&sqrt((endP.x&-&startP.x)&*&(endP.x&-&startP.x)&+&(-endP.y&+&startP.y)&*&(-endP.y&+&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&y3&=&(int)(endP.y&-&ra&*&((-endP.y&+&startP.y)&/&sqrt((endP.x&-&startP.x)&*&(endP.x&-&startP.x)&+&(-endP.y&+&startP.y)&*&(-endP.y&+&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x3,&y3);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&case&0x34:&&
&&&&&&&&&&&&&&&&&&&&x4&=&(int)(endP.x&-&ra&*&((-endP.x&+&startP.x)&/&sqrt((-endP.x&+&startP.x)&*&(-endP.x&+&startP.x)&+&(-endP.y&+&startP.y)&*&(-endP.y&+&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&y4&=&(int)(endP.y&-&ra&*&((-endP.y&+&startP.y)&/&sqrt((-endP.x&+&startP.x)&*&(-endP.x&+&startP.x)&+&(-endP.y&+&startP.y)&*&(-endP.y&+&startP.y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x4,&y4);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&return&0;&&
&&&&&&&&case&WM_SIZE&:&&&
&&&&&&&&&&&&if(flag==1)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Draw(hwnd,"第1点已锁定!");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&else&if(flag==2)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Draw(hwnd,"第2点已锁定!");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&else&&
&&&&&&&&&&&&{InvalidateRect&(hwnd,&NULL,&TRUE)&;&}&&
&&&&&&&&&&&&return&0&;&&
&&&&&&&&case&WM_KILLFOCUS:&&
&&&&&&&&&&&&InvalidateRect&(hwnd,&NULL,&TRUE)&;&&
&&&&&&&&&&&&hdc&=&BeginPaint&(hwnd,&&ps)&;&&
&&&&&&&&&&&&GetClientRect&(hwnd,&&rc)&;&&
&&&&&&&&&&&&hBrush&=&CreateSolidBrush&(&RGB(255,0,0)&)&;&&
&&&&&&&&&&&&FillRect&(hdc,&&rc,&hBrush)&;&&
&&&&&&&&&&&&EndPaint&(hwnd,&&ps)&;&&
&&&&&&&&&&&&ReleaseDC(hwnd,hdc);&&
&&&&&&&&&&&&DeleteObject&(hBrush)&;&&
&&&&&&&&&&&&return&0;&&
&&&&&&&&case&WM_SETFOCUS:&&
&&&&&&&&&&&&InvalidateRect&(hwnd,&NULL,&TRUE)&;&&
&&&&&&&&&&&&if(flag==1)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Draw(hwnd,"第1点已锁定!");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&else&if(flag==2)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&Draw(hwnd,"第2点已锁定!");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&return&0;&&
&&&&&&&&case&WM_DESTROY&:&&
&&&&&&&&&&&&PostQuitMessage&(0)&;&&
&&&&&&&&&&&&return&0&;&&
&&&&return&DefWindowProc(hwnd,&message,&wParam,&lParam)&;&&
但是问题还存在,就是手动找圆心太麻烦,一般用触摸板比鼠标方便,但是仍然很不智能,于是一直想着用图像处理的方法去自动找圆心。
这几天在做数模,经常用到Matlab,刚做了一道要处理图像的题,正好想起这个问题来,于是,搁置的瞄准器继续开始完善了。
很快就有了思路,通过C#截图,然后Matlab进行图像滤波,灰度化,二值化以及边缘提取,然后进行圆曲线拟合,最后找到圆心,返回到C#中使用,代替手动找点。
首先,我用Matlab写了个函数:
function&[x,y]=findcenter()&&
%close&all,clear,clc&&
format&short&&
a=imread('E:\360data\重要数据\桌面\test.bmp');&&
b=rgb2gray(a);%转化为灰度图像&&
%imshow(b)&&
b=filter2(fspecial('average',1),b)/255;&&
%b=medfilt2(b);%中值滤波&&
level=graythresh(b);%自动获取灰度图片的阈值&&
c=im2bw(b,level);%二值化&&
%imshow(c)&&
bw=edge(c,'canny');&&
bw1=~%取反,黑变白,白变黑&&
%imshow(bw1)&&
%imshow(bw1)&&
[yf,xf]=find(bw1==0);&&
xmin=min(xf);&&
xmax=max(xf);&&
ymin=min(yf);&&
ymax=max(yf);&&
%cirPx=[(xmax-xmin)/2;(xmax-xmin)/2;xmax]&&
%cirPy=[(ymax-ymin)/2;(ymax-ymin)/2]&&
%fitellse(cirPx,cirPy)&&
centerX=(xmax+xmin)/2;&&
centerY=(ymax+ymin)/2;&&
ra=(ymax-ymin)/2;&&
x=centerX;y=centerY;&&
%hold&on&&
%x=0:size(bw1,2);&&
%degree=[0:0.01:pi*2];&&
%degree=[0:0.01:pi*2];&&
%plot(ra*cos(degree)+centerX,ra*sin(degree)+centerY,'r-');&&
%plot(centerX,centerY,'r+');&&
然后用Matlab2010b里的deploytool导出.net能使用的程序集dll文件(不知道为什么malab2009b在build时出现.net framework相关的错误),通过C#添加引用,调用其返回的参数,成功完成自动拾取圆心。
改进后代码如下:
Csharp代码&
using&System.D&&
using&System.Windows.F&&
using&System.W&&
using&System.Runtime.InteropS&&
using&MathWorks.MATLAB.NET.A&&
using&MathWorks.MATLAB.NET.U&&
namespace&TaiqiuGua&&
&&&&public&partial&class&Form1&:&Form&&
&&&&&&&&const&int&ra=25;&&
&&&&&&&&[DllImport("user32.dll")]&&
&&&&&&&&static&extern&IntPtr&GetDesktopWindow();&&
&&&&&&&&[DllImport("user32.dll")]&&
&&&&&&&&static&extern&IntPtr&GetWindowDC(IntPtr&hWnd);&&
&&&&&&&&[DllImport("user32.dll")]&&
&&&&&&&&static&extern&bool&SetCursorPos(int&X,&int&Y);&&
&&&&&&&&public&Form1()&&
&&&&&&&&{&&
&&&&&&&&&&&&InitializeComponent();&&
&&&&&&&&}&&
&&&&&&&&Point&startP,startP1;&&
&&&&&&&&Point&endP,endP1;&&
&&&&&&&&&&
&&&&&&&&private&void&Form1_KeyDown(object&sender,&KeyEventArgs&e)&&
&&&&&&&&{&&
&&&&&&&&&&&&switch(e.KeyData)&&
&&&&&&&&&&&&{&&
&&&&&&&&&&&&&&&&case&Keys.F1:&&
&&&&&&&&&&&&&&&&&&&&startP=Control.MouseP&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.F5:&&
&&&&&&&&&&&&&&&&&&&&endP&=&Control.MouseP&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.F2:&&
&&&&&&&&&&&&&&&&&&&&startP1&=&Control.MouseP&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.F3:&&
&&&&&&&&&&&&&&&&&&&&endP1&=&Control.MouseP&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D1:&&
&&&&&&&&&&&&&&&&&&&&int&x1&=&(int)(endP.X&+&ra&*&((endP.X&-&startP.X)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y1&=&(int)(endP.Y&+&ra&*&((endP.Y&-&startP.Y)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x1,&y1);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D2:&&
&&&&&&&&&&&&&&&&&&&&int&x2&=&(int)(endP.X&-&ra&*&((-endP.X&+&startP.X)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y2&=&(int)(endP.Y&+&ra&*&((endP.Y&-&startP.Y)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(endP.Y&-&startP.Y)&*&(endP.Y&-&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x2,&y2);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D3:&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&int&x3&=&(int)(endP.X&+&ra&*&((endP.X&-&startP.X)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y3&=&(int)(endP.Y&-&ra&*&((-endP.Y&+&startP.Y)&/&Math.Sqrt((endP.X&-&startP.X)&*&(endP.X&-&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x3,&y3);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.D4:&&
&&&&&&&&&&&&&&&&&&&&int&x4&=&(int)(endP.X&-&ra&*&((-endP.X&+&startP.X)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&int&y4&=&(int)(endP.Y&-&ra&*&((-endP.Y&+&startP.Y)&/&Math.Sqrt((-endP.X&+&startP.X)&*&(-endP.X&+&startP.X)&+&(-endP.Y&+&startP.Y)&*&(-endP.Y&+&startP.Y))));&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos(x4,&y4);&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&case&Keys.F4:&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&int&w=endP1.X&-&startP1.X;&&
&&&&&&&&&&&&&&&&&&&&int&h=endP1.Y&-&startP1.Y;&&
&&&&&&&&&&&&&&&&&&&&Bitmap&bmSave&=&new&Bitmap(w,h);&&
&&&&&&&&&&&&&&&&&&&&Graphics&g=Graphics.FromImage(bmSave);&&
&&&&&&&&&&&&&&&&&&&&g.CopyFromScreen(startP1.X,startP1.Y,0,0,new&Size(w,h),CopyPixeltion.SourceCopy);&&
&&&&&&&&&&&&&&&&&&&&bmSave.Save(@"E:\360data\重要数据\桌面\test.bmp");&&
&&&&&&&&&&&&&&&&&&&&g.Dispose();&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&bmSave.Dispose();&&
&&&&&&&&&&&&&&&&&&&&findcenter.Class1&f&=&new&findcenter.Class1();&&&&&&&
&&&&&&&&&&&&&&&&&&&&MWArray¢erx&=&f.findcenter();&&
&&&&&&&&&&&&&&&&&&&&MWArray¢ery&=&f.findy();&&
&&&&&&&&&&&&&&&&&&&&double[,]&x&=&(double[,])centerx.ToArray();&&
&&&&&&&&&&&&&&&&&&&&double[,]&y&=&(double[,])centery.ToArray();&&
&&&&&&&&&&&&&&&&&&&&SetCursorPos((int)(x[0,&0]&+&startP1.X),&(int)(y[0,&0]&+&startP1.Y));&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&f.Dispose();&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&GC.Collect();&&
&&&&&&&&}&&
&&&&&&&&private&void&Form1_Activated(object&sender,&EventArgs&e)&&
&&&&&&&&{&&
&&&&&&&&&&&&
&&&&&&&&}&&
&&&&&&&&private&void&Form1_Deactivate(object&sender,&EventArgs&e)&&
&&&&&&&&{&&
&&&&&&&&&&&&
&&&&&&&&}&&
经试验,成功率也很高,偶尔出现不准(估计是边缘提取和计算精度的问题),但是大多数偏差可以手动修正。
到此为止,改进版全部完成。希望以后继续改进,更加智能化。C#&真是码农的利器啊!
优质网站模板当前位置: >
> qq游戏2d桌球***器工具 v4.8 免费版
qq游戏2d桌球***器工具 v4.8 免费版
qq游戏2d桌球***器最新版下载
软件大小:1.43MB
软件语言:简体中文
软件类型:
软件授权:免费软件
更新时间:
软件类别:QQ专区
软件官网:
应用平台:
网友评分:
软件介绍人气软件下载地址相关文章
一个QQ名片刷赞软件,在名片刷赞精灵(qq刷赞软件免费版)提交您需要刷赞的QQ号,点击开始刷赞即可,全是真实用户、真实赞,无需密码,可随时查询刷赞进度彩虹显IP是新一代的腾讯QQ辅助增强软件。完美兼容QQ2008II Beta1、QQ2008正式版等主流QQ版本功夫派辅助v2.1,功夫派快速升级辅助,秒杀,无毒最新版是由东东游戏网为您最新收集整理,绿色、无毒、免费、最新,请放心下载使用。本软件cf窗口化工具|进进CF窗口化工具通用版下载(官网真正去除鼠标限制)最新版是由东东游戏网为您最新收集整理,绿色、无毒、免费、最新,请放心下载使用。cf窗口化工具|进飞车百宝箱是一款QQ飞车的辅助工具,可以说是目前最好用的一款绿色无毒飞车辅助插件。拥有七大功能,提供起跑加速、自动准备等最实用的功能,飞车百宝箱官方团队郑重承诺,本工cf外卦大全不封号很多人反应如果在CF游戏中使用外挂很容易被官方封号,其实官方也是根据机器来检测的,只要你使用不是太高调穿越火线***器 1.8 CF***器
一个登入QQ空间获取好友最新动态给他自动点赞、留评论的软件,可以用于网络推广、简单易懂、非常实用QQ名片刷赞精灵是一款专门用来刷手机QQ名片赞的软件,全是真实用户、真实赞,无需密码,可随时查询刷赞进度,赠送同等访问量,5000赞30分钟内即可完成CF蘑菇辅助功能:方框透视 超级准星 切换背包 无后座力 无限飞天 单击点射 零秒换弹 一刀秒杀 人物遁地 模仿会员
qq游戏2d桌球***器工具 v4.8 免费版
CopyRight &
JB51.Net , All Rights Reserved

参考资料

 

随机推荐