マウスとキーボードの動きとクリックをシミュレートするための無料プログラム。 マウスレコーダー マウスの動きを記録する マウスの動きをシミュレートする

Move Mouse は、マウス カーソルを移動してボタンを押すことによって、コンピュータでのユーザーの存在をシミュレートするために使用されます。 さらに、これを使用して一部のプログラムを起動したり、コマンドや PowerShell スクリプトを実行したりすることもできます。 このユーティリティは、ユーザーのアクティビティがない場合、スケジュールに従って手動または自動でアクティブ化でき、指定された操作の停止にも同じことが当てはまります。

プログラムのアーセナルの各操作に対して、マウスの移動の距離と方向の設定、クリックをシミュレートするボタンの選択、コマンドの引数の指定、またはコンソール ウィンドウの非表示を可能にする追加のオプションが利用可能です。 すべてのアクションは(カスタムの一時停止を使用して)繰り返すことも、1 回だけ実行することもできます。

すでに述べた自動停止と自動開始に加えて、マウスの移動の動作設定には、音量を自動的に変更したり、デスクトップからプログラム ウィンドウを非表示にしたり、タスクバーからボタンやアイコンを非表示にしたり、サムネイルを表示したりするオプションがあります。 ALt+Tab ダイアログ ボックスから をクリックし、タイトルを上書きします。 最新のオプションは、誰かがそれを必要とする場合に、コンピュータ上でその存在と使用の痕跡を隠すのに役立ちます。

プログラムを開始または停止する曜日と時間を選択できる単純なスケジューラ、または Cron 式の入力をサポートするより高度なスケジューラを使用して、アクションをアクティブにするスケジュールを設定できます。 スケジュールに従って、Move Mouse は活動を停止する可能性があります。「ブラックアウト」の期間も変更されます。

このプログラムは無料で配布されており、現在のバージョンでは、英語の 1 つのインターフェイス言語のみが利用可能です。 Move Mouse は、Windows 10 を搭載したコンピューターやタブレットで使用できます。どうやら、Windows ストアでプログラムを公開した後、開発者は他のソースからの配布を拒否したようです。

Microsoft Storeからインストールする

誰もが一度は遊んでいるときに「自分で遊んでくれるプログラムを書けたらいいのに!」と思ったことがあるでしょう。 しかし、通常、この考えは単なる考えにとどまります...どこから始めればよいかわからない、圧倒的なタスクへの恐怖、左肩越しにささやかれる「なぜこれ?」など、常に何かが邪魔をします。 プログラムで遊ぶためにそれを必要とするのは誰ですか?」 等

この一連の記事で私は、第一に「悪魔は描かれているほど恐ろしいものではない」ということを示し、第二に、後で「なぜこれが必要なのか?」という質問に答えるつもりです。

では、簡単なことから始めましょう。 ゲームとプレーヤー プログラム (ボット) の関係の確立から。 有名なゲーム「Zuma」がモルモットとして取り上げられています。

あらゆる対話は、「彼ら」へのデータの送信と「彼ら」からのデータの受信という 2 つのプロセスで構成されます。 Zuma では、すべてのコントロールはマウスで行われ、ゲームは画像を使用してフィードバックを提供します。 したがって、まず、マウスの動作をプログラムでエミュレートし、ゲームから画像を取得する方法を学ぶ必要があります。

この記事の主な目的は、独立してゲーム プロセスに何度も入り込み、そこで何かを実行し、ゲーム オーバーになったら最初からやり直すプログラムを取得することです。 さらに、このフレームワークは、ボットがゲームオーバーになるまでゲーム内でさらに長く存続する方向に発展します。

解決可能な補助サブタスク: マウス エミュレーション、仮想マシンへのマウス リダイレクト、イメージ キャプチャ。

退却

この一連の記事のコードを開発する際に使用されるアプローチは、最小限の労力でできるだけ早く結果を得るというものです。 このアプローチにより、モチベーションを高いレベルで維持することができ、乗り越えられないタスクに直面しても諦めることがなくなります。 このため:
- まず、多くの重要ではない (現在の結果の観点から) ポイントがすぐに読み飛ばされ、コード内に「松葉杖とサポート」が残ります。 そして、次の反復でのみ、これらのポイントが個別に分析され、「松葉杖」が本格的なコードに置き換えられます。
- 第二に、コード スタイルは従来の C# よりも「ハッカー」的です。 コードには、大量のラムダ、匿名データ、トリック、作成者の裁量が含まれ、コメントは完全に欠如します。

マウスエミュレーション

Windows は、4 つの異なる WinApi 関数を使用した 2 つの標準的なマウス エミュレーション方法をサポートしています。

最初の方法: SendMessage または PostMessage 関数を使用して、プログラム独自のウィンドウ メッセージ (WM_MOUSEMOVE、WM_LBUTTONDOWN など) を送信します。

DirectX ゲームの場合 (今回の場合のように)、この方法は適切ではありません。マウスをポーリングするプログラムでは、Windows メッセージを無視してマウスを直接ポーリングする DirectInput が使用されるためです。

第二の方法:mouse_event 関数または SendInput 関数を使用したマウス動作の直接エミュレーション。 この方法は、フルスクリーンの DirectX ゲームを含むあらゆるプログラムに適しています。 Mouse_event 関数はより単純ですが、廃止されたと考えられています。SendInput はより現代的ですが、より複雑です。 マウスイベントに注目してみましょう。

C# の WinApi 関数は、PInvoke テクノロジを使用して呼び出されます。 最も一般的な WinApi 関数の PInvoke の説明は、PInvoke.net Web サイトで見つけることができます。 Mouse_even 関数も例外ではありません。
public static extern void Mouse_event(uint dwFlags, int dx, int dy, uint dwData, UIntPtr dwExtraInfo);

マウス座標
Mouse_event 関数には特別な機能があります。マウス座標はピクセルではなくミッキーで指定されます。 ミッキーからピクセルへの変換 (またはその逆) は、使用されているメイン モニターの解像度によって異なります。 (0,0) はモニターの左上隅に対応し、(65535, 65535) はモニターの右下隅に対応します。これにより、ミッキーをピクセルに、またはその逆に変換するための式が得られます。ピクセルポイント = ミッキーポイント * スクリーンサイズ / ( 65536, 65536) 。
基本操作
上記をすべてまとめると、マウスを制御するための次の操作が得られます。
マウス カーソルを点 (x,y) に移動します。
マウスイベント(MouseEventFlags.MOVE | MouseEventFlags.ABSOLUTE, x * 65536 / 画面幅, y * 65536 / 画面高さ);
左クリック:
マウスイベント((MouseEventFlags.LEFTDOWN), 0, 0); System.Threading.Thread.Sleep(100); マウスイベント((MouseEventFlags.LEFTUP), 0, 0);
右クリック:
マウスイベント((MouseEventFlags.RIGHTDOWN), 0, 0); System.Threading.Thread.Sleep(100); マウスイベント((MouseEventFlags.RIGHTUP), 0, 0);
問題: 入力の排他性
Mouse_event 関数を使用してマウスをエミュレートする場合、重大な不便があります。mouse_event は、個別のアプリケーションではなく、OS 全体のマウスを一度にシミュレートします。 このことから、ボットが実行中および再生中は、コンピューター上で他の作業 (ボットのデバッグ、ボットの状態のアクティブな表示、インターネットの読み取りなど) は不可能であることがわかります。 しかし、仮想マシンという解決策があります。

ゲームを仮想マシンに転送する

ゲームを仮想マシンに転送すると、次の問題が解決されます。
- まず、ウィンドウ モードをサポートせず、フル スクリーン モードでのみ動作するゲームとの対話を簡素化します。
- 第 2 に、マウス入力は仮想マシン上でのみ置き換えられますが、メイン マシンでは通常モードで動作し続けるため、コンピュータ ユーザーは通常の作業を続けることができます。

ゲーム自体とは異なり、ボットはメイン マシンで実行する方が便利です。 これにより、Visual Studio から直接ボットを再起動したり、そこでデバッグしたり、ボットの内部状態を表示したりすることができます。

仮想マシン (この場合は Oracle VirtualBox が使用されました) のデプロイ、ゲスト OS のインストール、およびゲームの転送は、1 点を除いて標準的な方法で実行されます。ボットは、ボット間でネットワークを介した通信を確立する機能を必要とします。ホストOSとゲストOS。 これはさまざまな方法で行われます。 1 つの方法は、VirtualBox を使用してゲスト OS からホスト OS に特定のポートを転送することです。 もう 1 つの方法は、ブリッジ アダプター モードを構成することです。これにより、仮想マシンはネットワーク全体で通常のコンピューターのように見え、ゲスト OS はルーターから dhcp 経由で IP アドレスを受け取ります。 ホストOSからゲストOSへのアクセスはこのアドレスで行われます。 (この場合、著者はブリッジアダプターを使用したオプションを使用しました)

プロキシ
ゲスト OS 上のマウスを制御するために、単純なコンソール TCP サーバーであるプロキシを作成します。 完全なコードは小さいので、カットの下に表示されます。 コードを簡素化し、依存関係を減らすために、プロキシはリモーティングや wcf などを使用せずに裸のソケット上に作成されます。

プロキシコード

システムを使用する; System.Collections.Generic を使用します。 System.Linq を使用します。 System.Net.Sockets を使用します。 System.Runtime.InteropServices を使用します。 System.Text を使用します。 namespace InputProxy ( class Program ( static void Main(string args) ( varソケット = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);ソケット.Bind(new System.Net.IPEndPoint(System.Net.IPAddress.任意、7001)); ソケット.Listen(10); for (; ;) ( var client =ソケット.Accept(); Console.WriteLine("connected.."); var thread = new System.Threading.Thread(( ) => ( try ( var clientReader = new System.IO.BinaryReader(new NetworkStream(client)); for (; ;) ( if (client.Poll(1, SelectMode.SelectRead) && client.Available == 0) ( Console.WriteLine("disconnected.."); Break; ) if (client.Available > 0) ( var msgSize = clientReader.ReadInt32(); var message = clientReader.ReadBytes(msgSize); var messageReader = new System.IO. BinaryReader(new System.IO.MemoryStream(message)); var msgKind = messageReader.ReadInt32(); Console.WriteLine("message: kind:(0), len:(1)", msgKind, message.Length); msgKind) (case 0: ( var flags = messageReader.ReadUInt32(); var x = messageReader.ReadInt32(); var y = messageReader.ReadInt32(); var data = messageReader.ReadUInt32(); Mouse_event(フラグ、x、y、データ、UIntPtr.Zero); ) 壊す;


) ) else System.Threading.Thread.Sleep(10); ) ) catch (Exception exc) ( Console.WriteLine(exc); ) )) ( IsBackground = true ); thread.Start(); ) ) public static extern void Mouse_event(uint dwFlags, int dx, int dy, uint dwData, UIntPtr dwExtraInfo); ))
プロキシを機能させるには、プロキシを仮想マシンにコピーして実行するだけです。 プロキシはポート 7001 でメッセージを待機し、その操作のログをコンソールに表示します。 プロキシをシャットダウンするには、コンソール ウィンドウを閉じるだけです。
クライアント
プロキシへの接続は、プロキシ自体のコードよりもさらに簡単です。 var client = 新しい System.Net.Sockets.TcpClient(vm_host, 7001); var clientStream = client.GetStream(); var clientWriter = 新しい System.IO.BinaryWriter(clientStream); アクション

Mouse_event = (flags, x, y) => ( var messageStream = new System.IO.MemoryStream(); var messageWriter = new System.IO.BinaryWriter(messageStream); messageWriter.Write(0); messageWriter.Write((uint) ); メッセージWriter.Write(y); var message = messageStream.ToArray();

画像をキャプチャする最も簡単な方法は、画面から直接キャプチャすることです。 .net には、このための既製の関数 Graphics.CopyFromScreen があります。 この方法をさらに詳しく見てみましょう。
まず、グラフィックスではなくビットマップを出力として取得したいとします。これは補助関数を使用して解決できます。
public static Bitmap GetScreenImage(Rectangle rect) ( var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb); using (Graphics graphics = Graphics.FromImage(bmp)) ( graphics.CopyFromScreen(rect.Left, rect) .Top、0、0、rect.Size、CopyPixelOperation.SourceCopy ) bmp を返します )
次に、画面のどの部分をキャプチャする必要があるかを知る必要があります。 もちろん、常に画面の同じ部分をキャプチャし、画面のこの部分に手を置いてゲームを配置することもできますが、これは便利でも便利でもありません。 さらに、このプロセスの自動化は最小限の労力で実行されます。 WinApi と PInvoke がこれにも役立ちます。具体的には、FindWindow と GetWindowRect の 2 つの関数が役に立ちます。 FindWindow を使用すると、ウィンドウ タイトルによってウィンドウのハンドルを取得でき、ハンドルによって GetWindowRect を使用すると、画面上のウィンドウの位置とサイズが返されます。
pinvoke.net Web サイトには、FindWindow と GetWindowRect の両方の関数に関する pinvoke の説明があります。
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect); public struct RECT ( public int Left; public int Top; public int Right; public int Bottom; )
仮想マシン ウィンドウの画像をキャプチャするコードは次のとおりです。
var vm_left = 8; var vm_right = 8; var vm_top = 50; var vm_bottom = 30; var vm_title = "Windows81 - Oracle VM VirtualBox"; var handle = FindWindow(null, vm_title); if (handle == IntPtr.Zero) throw new Exception("Окно не найдено"); RECT rect; GetWindowRect(handle, out rect); var gameScreenRect = new System.Drawing.Rectangle(rect.Left + vm_left, rect.Top + vm_top, rect.Right - rect.Left - vm_right - vm_left, rect.Bottom - rect.Top - vm_bottom - vm_top); var gameBmp = GetScreenImage(gameScreenRect); !}
弱点
このアプローチの重大な欠点は、キャプチャされたウィンドウが、第一に、完全に画面上に配置されなければならないこと、第二に、他のすべてのウィンドウの上に配置されなければならないことです。 この不便さは 2 つ (またはそれ以上) のモニターを使用することで平準化されます:)。その後、仮想マシンのウィンドウは誰にも邪魔されることなく補助モニター上に配置され、他のウィンドウの上に残ります。 また、この問題は、前述の方法、つまり仮想マシン内で機能 (画面キャプチャ) を転送することで完全に解決されます。 これを行うには、適切な関数を InputProxy に追加するだけです。

ゲームプレイをループする

最後に、今日設定されたタスク、つまりゲーム プロセスのループの解決に直接進みます。必要なサブタスクはすべて解決されました。 Zuma のゲームプレイは、メイン、ミッション、アクションの 3 つのウィンドウを中心に展開します。 メイン ウィンドウにはメイン メニューが含まれており、ゲームの種類を選択できます。ミッション ウィンドウはミッションの選択を促し、アクション ウィンドウはゲームプレイ自体が行われる場所です。
ボットは、いくつかの重要なポイントの色の値によって、最も単純な方法で現在のウィンドウを決定します。 ポイントは、「注視」方法を使用して手動で選択されます。
var screenChecks = new ( new ( Name = "main", Points = new ( new CheckPoint(200, 190, 0xff554a22), new CheckPoint(65, 400, 0xfff44c41) ) ), new ( Name = "mission", Points = new ( new CheckPoint(200, 190, 0xffb5d0c7), new CheckPoint(65, 400, 0xffad7630) ) ), new ( Name = "action", Points = new ( new CheckPoint(950, 10, 0xff72554b), new CheckPoint(10, 10、0xff462b1d)、) )、); ファンク check = image => screenChecks.Where(_check => image.Check(_check.P​​oints)).Select(_check => _check.Name).FirstOrDefault();
メインのボット ループ:
var startButtonPoint = 新しいポイント(950, 430); var startMissionPoint = 新しいポイント(600, 750); for (; ;) (try ( var bmp = GetScreenImage(gameScreenRect); var screenName = check(bmp); Console.Write(screenName + new string(" ", 20) + new string("\x8", 40)) ; switch (screenName) (case "main":mouse_event(MouseEventFlags.MOVE | MouseEventFlags.ABSOLUTE, startButtonPoint.X * 65536 / game_width, startButtonPoint.Y * 65536 / game_height); System.Threading.Thread.Sleep(400); マウスイベント(MouseEventFlags.LEFTDOWN, 0, 0); System.Threading.Thread.Sleep(150); マウスイベント(MouseEventFlags.MOVE); .ABSOLUTE, startMissionPoint.X * 65536 / game_width, startMissionPoint.Y * 65536 / game_height); System.Threading.Thread.Sleep(150); ); マウスイベント(MouseEventFlags.LEFTDOWN, 0, 0); System.Threading.Thread.Sleep(150); マウスイベント(MouseEventFlags.LEFTUP, 0, 0); System.Threading.Thread.Sleep(50); 壊す;
ゲームフェーズ中、ボットは常にクリックし、ある時点でボールを放出します。 このような単純な (またはかなり愚かな) 戦術を使用して、ボットは最初のミッションで 1000 ~ 2000 ポイントを獲得し、場合によっては Zuma バーを完全に獲得することもあります。

まとめ

目標は達成されました。ボット フレームワークが作成され、ゲームプレイがループされました。
次の目標: OpenCV に接続し、ボールの位置と色を認識します。
PS
注目を集めるイメージ。 (オレンジ色は、次のバージョンのボットがボールとして認識した領域を示します)

まず、コンピュータ上のさまざまな操作を自動化し、マウスの動きやキーボードのキーストロークをシミュレートするプログラムに興味がある人は、自分が何を望んでいるのかをよく理解していないことを理解する必要があります。 外から見ると、すべてが単純に見えます。マウスとキーボードを使用して操作を再現し、それらをシミュレートするプログラムが必要です。 さて、状況の本質を理解してみましょう...

マクロ - コンピューター上のアクションを自動化およびシミュレートするプログラムを探している場合は、マクロのようなものがあることを知っておく必要があります。 Microsoft Office スイートの例を見てみるのが最善です。 彼らのプログラム (Word、Excel など) には、Visual Basic 言語エディタが組み込まれています。 Basic、Visual Basic、vbscript などは関係ありません。重要なのは、それが Microsoft 関連のプログラミング言語であるということです。 実際、類似または類似した言語構文は、ビルおじさんの他のプログラミング言語でも使用できます。 スタンドアロン パッケージとは異なり、Microsoft Office の Visual Basic Editor は、Word や Excel などのオフィス環境でコードを実行するように設計されています。 にも同様のツールがあります。 したがって、エディターでプログラム コードを作成し、それをマクロと呼ばれる場所に保存し、定期的に実行することができます。 通常、マクロには、ルーチン作業を迅速に実行できるようにするプログラム コードが含まれています。次に例を示します。

  • 2 段落ごとにスタイルを適用します。
  • すべてのテーブルをテキストに変換し、指定された書式設定を適用します。
  • コンテンツを自動的に分割し、別のドキュメントに保存します。

他のプログラムのマクロ自体を使用すると、次のことが可能になります。

  • マウスボタンの押下をシミュレートします。
  • キーボードのキーを押すシミュレーション。
  • マウスクリックのシミュレーション。
  • キーボードの模倣。
  • マウスの動きを模倣します。

Word や Excel のさまざまなマクロの例が多数あります。 ただし、その主な利点は、コードを書かずに作成できることです。PLAY ボタンを押すだけで、アクション (テキストの選択、スタイルの適用) の記録が開始されます。 (STOP を押して) 記録が終了すると、プログラム コードを含む新しいマクロが自動的に表示されます。 次に、保存したマクロを実行すると、アクションが自動化されます。 間接的に、マクロは、コンピューター上の Word エディターまたは Excel スプレッドシート プロセッサーでのユーザー操作を自動化するためのプログラムの一種と考えることもできることは明らかです。 正式には、マクロは Office 内でも作成されますが、エディター内でのみ作成されます。

マクロのような概念は、プログラミングや言語の他の分野でも使用されることを理解する必要があります。

イベントインターセプト– マウスの移動やボタンのクリックなどの要素は、通常、イベントと呼ばれます。 多くのイベントが存在する可能性があり、さらにさまざまなオブジェクト (ウィンドウ、アプリケーション、ウィンドウ領域など) も存在します。 コンピューター上のさまざまなユーザー操作を自動化するほとんどのプログラムは、マウスの動き、クリック、キーボードのキーストロークの形でイベントをインターセプトし、それらのシミュレーションを作成できなければなりません。 自動化プログラムの中には、マウスの動きをシミュレートしたりプログラムしたりできるものや、キーボードのキーストロークをインターセプトしたり、その逆にシミュレートしたりできるものがあります。

マウスとキーボードのすべての操作を再現できるプログラムを作成することは問題ではありません。ウィンドウ処理をオンにすることもできます。 ただし、これは単なる単純なシミュレーションであり、1 つ以上の指定した点でマウスを数回素早くクリックする必要がある場合や、複数のフォームにデータを自動的に入力する必要がある場合に適しています。

ユーザーが多く、タスクも多いことがわかります。 ファイルまたはディレクトリの並べ替えと名前変更のプロセスを自動化する必要があります。 ある人は、1 つのデザインを何百もの Word 文書にすぐに適用したいと考えています。 後者の場合、txt ドキュメントの場合は、Notepad++ エディターを使用できます。

さて、この記事の主題に関するいくつかの簡単なプログラムを見てみましょう。

キーボード、マウス、動き、クリックをシミュレートするマクロドルプログラム

マクロドルは、マウスとキーボードの操作を自動化およびシミュレートするための古くてシンプルなソフトウェアです。 このプログラムではマウスやキーボードの動作を完全に記録し、シミュレートできるという事実を考慮すると、本格的なマクロと呼ぶことができます。

Macro Dollar を起動すると、録音を開始、停止、再生するボタンのある小さなウィンドウが表示されます。 また、チェックすべき点がいくつかあります。

  • 一番上– プログラム ウィンドウは常に最前面に表示されます。
  • ループ– このオプションをチェックすると、マウスとキーボードのシミュレーションの再生プロセスが無限に続きます。
  • シェイク- 録画再生中にマウスカーソルが震える「シェイク」機能。
  • 再生または録音のアイコン化– 録画中はプログラム ウィンドウが最小化されます。

アイコンとテキストフィールドから判断すると、このプログラムでは、テキストスクリプトで書かれたコマンドを使用して独自のマクロを作成できます。 しかし、私にとっては、Macro Dollar がマウスとキーボードの操作を記録し、それらをシミュレートできるだけで十分です。

Macro Dollar は移植可能なプログラムです。

WinMacro も、マウスの動きとキーボード ボタンをシミュレートする単純なプログラムです。

ウィンマクロこれは Macro Dollar と同じくらい古いプログラムですが、今でもうまく機能します。 記録するには 3 つの手順だけが必要です。 録音するファイルを指定し、録音ボタンをクリックして、一時停止/中断のホットキーを押して録音を停止します。 記録を再生したいときは、保存された .log ファイルへのパスを指定して、再生ボタンをクリックするだけです。 ホットキー Ctrl + Esc を使用して再生をキャンセルできます。 [オプション] ボタンを使用すると、繰り返し回数と再生速度を設定できます。

GhostMouse – マウスとボタンを押すときの幽霊のようなシミュレーション

ゴーストマウスは、ユーザーのアクションをシミュレートするための非常にシンプルなプログラムで、メイン ウィンドウには 2 つのボタン (再生と記録) しかありません。 迅速かつ短期間の使用に適していますが、もちろん、反復的なタスクの自動化にも適しています。

前の例とは異なり、GhostMouse は移植性がなく、インストールが必要です。 [オプション] メニューでは、再生速度を設定したり、プログラムが記録するもの、または記録しないもの (キーストローク、マウスの動きなど) を指定したりできます。

Do It Again – マクロのリストの作成

再びそれを行う上記の他の 3 つのツールと大きな違いはありませんが、利点が 1 つあります。それは、プログラムにマクロ記録のリストが表示されるため、プログラムにスクリプトを手動でロードせずにさまざまなタスクを実行する必要があるユーザーにとって便利です。

アクション プログラム – コンピューター上のアクションを完全に自動化します

行動)これは Automator の視覚的なクローンですが、利用可能なインタラクションのリストで提供されるオプションはわずかに少なくなっています。

オートメータ- スクリプト言語を知らなくてもコンピュータ上でアクションの自動化を実装できる、OS X 用の独創的な組み込みアプリケーションです。 このアプリケーションは、デジタル写真を頻繁に扱う人にとって役立つかもしれません。 適切な例として、自動アクションの必要性を指定できます。指定されたフォルダーからすべての写真を新しいディレクトリにコピーし、解像度を 72 DPI 下げて、CMYK デジタル モデルから RGB に変換します。 ただし、さらに、テキスト、電子メール、PDF ドキュメントの操作を自動化したり、指定した時間に実行されるようにスクリプトを設定したり、SQL データベースを操作したりすることもできます。

彼らは、Windows 用と、逆説的に OS X 用の両方に独自のバージョンを提供しています。電子メール、ファイルとフォルダー、画像、ブラウザー、プレーン テキストを使用して、コンピューターにアクションの自動化をインストールできます。

利点は、主に写真やオーディオビジュアル コンテンツを操作するためにユーザーが最も頻繁に使用する既製のマクロ セットであることです。 必要なアクション (マクロ) がライブラリになく、それを作成したい場合は、ほとんどの場合、アクション プログラム専用のユーザー フォーラムで必要な解決策が見つかります。 パソコンやラップトップでの操作を自動化するプログラム自体は Java で書かれていることに注意することが重要です。 マウスの動きとキーボードのキーストロークのシミュレーションがサポートされています。

結論

まれに記事の最後の行を結論として引用することがありますが、ここでは例外とすることにしました。

記事を始めるときに、Word や Excel エディターだけでなく、Photoshop グラフィック エディターでも利用できることを言い忘れました。 はい、そこには、ある意味マクロに似た関数があります。 そのため、描画処理時に使用されるアクションを記録し、PSD ファイル自体に保存し、他のグラフィック データで簡単に再現できます。 Corel Draw や他の同様のプログラムにも同様の機能があると思います。

コンピュータで作業する場合、マウスやキーボードなどを使用して同様の操作を多数実行する必要があることがよくあります。 これはすべて大変な作業ですが、賢いプログラマーは (そして常に賢いのです!)、ユーザーの作業を楽にするために、オートクリッカーと呼ばれるプログラムを作成しました。 素晴らしい eMouse プログラムの例を使用して、ルーチンワークを回避する方法を見てみましょう。

eマウス

私たちは現場に行きます。 取り付けは難しくありません。 インストール後、起動するとウィンドウが表示されます。

左側には「Rec」(録音)ボタンがあります。クリックすると、マウスとキーボードの操作が記録されます。 「再生」すると再生(記録された動作を繰り返します)します。 そして「×」欄に回数を設定し(写真では1回に設定しています)、「ループ再生」欄にチェックを入れます。

左下には、「記録: キーとマウス」チェックボックスがあります。 これらのチェックボックスがチェックされている場合、マウスとキーボードの操作が記録されます (チェックされていない場合は、それに応じて記録されます)。

設定を表示 (および変更) できます。 「編集」リンクをクリックし、コンテキストメニューで「設定」を選択します

ここでは設定を示します。

ホットキーがインストールされています。 アクションの記録を開始するには - F5、一時停止するには - F11、再生するには - F12。

記録されたアクション (スクリプト) は保存できます。 さまざまなシーケンスを大量に作成し、必要に応じて呼び出すことができます。

「ファイル」を開き、「スクリプトを名前を付けて保存...」を選択し、必要な場所に保存します。

AutoClicker (最も原始的な)

マウスの右ボタンまたは左ボタンで大量のクリックを行う必要がある場合は、このプログラムが最適です。 PROFIT ゲームで VKontakte を使用するのは素晴らしいことです。 スーパークリッカーまたはクリッカー。

プログラムは有料ですが、その「無料」バージョンはからダウンロードできます。 起動しましょう。 プログラムのインターフェースは非常にシンプルです。

マウスの左ボタンの操作方法は左側に、マウスの右ボタンの操作方法は右側に記載されています(スライダーについては後で説明します)。 ホットキーを使用します。

プログラムを起動します。つまり、 キーボードの ALT+1 を押します。 これは、キーボードの ALT キーを押し、次に「+」キーを押し、次に数字の「1!」を含むキーを押すという意味ではありません。 いいえ、「ALT」キーと「1」キーを同時に押すだけです。

VKontakte にアクセスし、何度もクリックし、マウスを動かして ALT+1 を押す必要があるゲームを探します。 そして、ALT+2 を押すまで、クリックは続きます。

Ghost Mouse は からダウンロードできます。 取り付けは難しくありません。 起動しましょう。

アクションを記録するには、赤いボタンを押します。 または、F9 を押してアクションを再生するには、「Ctrl+Q」を押します。