物事は難しいです。
機能は非常に少ない使用しています。
2ポイントが動き回る座標とマウスの左ボタンをクリックして、私は、淘宝網のレコードを削除すると、この例が書かれていました。
使用したシステムを、 使用System.Runtime.InteropServicesを、 使用System.Threadingと、 名前空間のマウスの動きやクリック { パブリック 列挙MOUSETYPE { // マウス移動 MOUSEEVENTF_MOVE = 0x0001の、 // シミュレートマウスボタンが押さ MOUSEEVENTF_LEFTDOWN = 0×0002を、 // アナログは、マウスを左ボタンリフト MOUSEEVENTF_LEFTUP = 0x0004はは、 // ダウンマウスの右をシミュレート MOUSEEVENTF_RIGHTDOWN = 0x0008で、 // リフトに、マウスの右ボタンをシミュレート MOUSEEVENTF_RIGHTUP =0x0010は、 // シミュレートマウスボタンが押下さ = MOUSEEVENTF_MIDDLEDOWNを0x0020に、 // シミュレートマウスボタンリフト MOUSEEVENTF_MIDDLEUP = 0x0040が、 // 絶対座標かどうかを示し MOUSEEVENTF_ABSOLUTE = 0x8000の、 } クラスプログラム { [System.Runtime.InteropServices.DllImport(" USER32 " )] パブリック 静的 にextern INT MOUSE_EVENT(int型 dwFlagsパラメータを、INT DX、INT DY、INTcButtons、INT dwExtraInfo)。 [DLLIMPORT(" User32.dllの" )] パブリック 静的 にextern BOOL SetCursorPos(int型 X、INT Y)。 静的 ボイドメイン(文字列[]引数) { 初期化()。 Console.ReadKey(); } 静的 int型のX1、Y1、X2、Y2; プライベート 静的 無効DoClick() { SetCursorPos(X1、Y1); MOUSE_EVENT((int型)MouseType.MOUSEEVENTF_LEFTDOWN | (INT)MouseType.MOUSEEVENTF_LEFTUP、0、0、0、0 ); // MOUSE_EVENT((int型)MouseType.MOUSEEVENTF_RIGHTDOWN |(int型)MouseType.MOUSEEVENTF_RIGHTUP、0、0、0、0); 列 N = $ " X1:{X 1}、Y1:{Y1} " 。 Console.WriteLineを(N)。 Thread.sleep(300 )。 } プライベート 静的 ボイドDoClickXY2() { SetCursorPos(X2、Y2)。 // MOUSE_EVENT((int型)MouseType.MOUSEEVENTF_RIGHTDOWN |(int型)MouseType.MOUSEEVENTF_RIGHTUP、0、0、0、0); MOUSE_EVENT((int型)MouseType.MOUSEEVENTF_LEFTDOWN |(int型)MouseType.MOUSEEVENTF_LEFTUP、0、0、0、0 ); 列 N = $ " X2:{} X2、Y2:{Y2} " 。 Console.WriteLineを(N)。 Thread.sleep(300 )。 } プライベート 静的 ボイド入力データ() { Console.WriteLineを(" X1坐标" )。 X1 = INT .Parse(Console.ReadLine()); Console.WriteLineを(" Y1坐标" ); Y1 = INT .Parse(Console.ReadLine())。 Console.WriteLineを(" ×2坐标" ); X2 = INT .Parse(Console.ReadLine()); Console.WriteLineを(" Y2坐标" ); Y2 = INT .Parse(Console.ReadLine())。 Console.WriteLineを(); 文字列のn = $ " X1:{X1}、Y1:{Y1}、X2:{X2}、Y2:{Y2}" ; Console.WriteLineを(N); } 静的 ボイドは、init() { 一方(真) { プール(); Console.WriteLineを(" 是否继续Y / N?" ); VAR = B 。Console.ReadKey()は、keyChar。 もし(!B = ' Y ' && B =!' Y ' )、 ブレーク; } } 静的 無効プール() { Console.WriteLineを(" 执行次数:" ); INT NUM = INT .Parse(Console.ReadLine())。 入力データ(); 一方、(NUM> = 0 ) { DoClick()。 Thread.sleep(100 )。 DoClickXY2(); NUM - ; } Console.WriteLineを()。 } } }