Registratore del mouse Registra i movimenti del mouse. Mouse Recorder Registrazione dei movimenti del mouse Un programma per far muovere il mouse da solo

Mouse Recorder è un servizio universale creato per liberare l'utente da qualsiasi azione ripetitiva durante l'esecuzione di attività sul computer. Per automatizzare il processo, dovresti registrare l'algoritmo delle azioni (macro): movimenti del mouse e sequenze di tasti. La registrazione del mouse e della tastiera viene eseguita utilizzando il programma. Non sono necessarie abilità di programmazione speciali: il processo è facile e semplice. Le funzionalità del programma consentono di personalizzare individualmente qualsiasi movimento del mouse o sequenza di tasti sulla tastiera per completare rapidamente un'attività specifica. L'automazione delle azioni di mouse e tastiera semplifica il lavoro al computer, che consente di completare lo stesso processo in meno tempo, aumentando la velocità del progetto. Allo stesso tempo, l'applicazione ha l'opportunità unica di utilizzare i tuoi record insieme a un servizio separato "PhraseExpress", che aggiunge caratteristiche aggiuntive il vostro lavoro.

Mouse Recorder: un servizio conveniente per automatizzare il lavoro su Windows

Mouse Recorder è un programma gratuito per la registrazione di macro, la cui riproduzione consente di semplificare e accelerare notevolmente alcune attività: debug del software del computer, rilevamento degli errori della pagina Web, simulazione delle azioni dell'utente e lavori simili su un PC utilizzando il funzionamento automatizzato del servizio . Il programma per la registrazione delle azioni del mouse e della tastiera è facile da usare e non richiede una formazione specifica per l'utente.

Registra il mouse con la tastiera e ripeti

Per semplificare il tuo lavoro monotono su attività ripetitive, è sufficiente installare Mouse Recorder, che può utilizzare anche un programmatore o un web designer alle prime armi. L'automazione del mouse e della tastiera avviene in più fasi: prima registriamo la macro desiderata utilizzando il pulsante "Registra", quindi, per ripetere le azioni registrate in futuro, è necessario fare clic sul pulsante "Riproduci" in un velocità di riproduzione. Così puoi facilmente ricordare le azioni del mouse e della tastiera e ripeterle al momento giusto. Un comodo editor ti consente di personalizzare qualsiasi movimento del mouse, azione dei pulsanti della tastiera, nonché modificare e aggiungere le pause, i clic e le sequenze di tasti necessari. La precisione della registrazione dei movimenti del mouse e gli intervalli di tempo dei clic vengono osservati dal programma in modalità automatica.

Mouse e tastiera simulati

Tutto è creato per un uso confortevole: la registrazione e l'automazione delle azioni dell'utente avviene sotto la supervisione diretta di una persona e un sistema di utilità automatico. Il programma Mouse Recorder ti fornirà il ripristino della posizione della finestra dell'applicazione registrata se la finestra ha cambiato posizione sullo schermo per qualche motivo. Per l'uso multiutente di Mouse Recorder, puoi sincronizzarti con il servizio web Dropbox, che consentirà ad altri utenti di accedere alle registrazioni.

Screenshot di Registratore mouse



Sito ufficiale: http://www.mouserecorder.com/
Sistemi operativi: Windows Tutto
Lingue supportate: inglese
Versione: 1.0.50
Licenza:freeware (libero)

Dimensione file 2,4 MB

Programmi più interessanti

Per cominciare, devi capire che le persone interessate ai programmi per automatizzare varie azioni su un computer, simulare i movimenti del mouse e le sequenze di tasti della tastiera, non capiscono bene cosa vogliono. Dall'esterno sembra tutto semplice: ho bisogno di un programma che riproduca le mie azioni con mouse e tastiera, simulandole. Va bene, proviamo a capire l'essenza della situazione ...

Macro: se stai cercando programmi per automatizzare e simulare azioni su un computer, dovresti sapere che esiste una cosa come una macro. È meglio considerare un esempio pacchetto Microsoft ufficio. I loro programmi (Word, Excel...) contengono un editor di linguaggio Visual Basic integrato. Basic, Visual Basic, vbscript, non importa, la cosa principale è che questo è un linguaggio di programmazione legato a Microsoft. In realtà, la sintassi di un linguaggio simile o simile può essere utilizzata in altri linguaggi di programmazione da Uncle Bill. A differenza dei pacchetti standalone, Visual Basic Editor di Microsoft Office è progettato per eseguire codice in un ambiente d'ufficio come Word o Excel. Ci sono strumenti simili in . Quindi, puoi scrivere il codice del programma nell'editor, salvarlo, dove viene chiamato macro ed eseguirlo periodicamente. Una macro, di regola, contiene un codice di programma che consente di eseguire rapidamente lavori di routine, ad esempio:

  • Applica lo stile a ogni secondo paragrafo.
  • Converti tutte le tabelle in testo e applica la formattazione specificata.
  • Dividi automaticamente il contenuto e salvalo come documenti separati.

Le stesse macro in altri programmi consentono di:

  • simula un clic del mouse.
  • simulazione di sequenze di tasti su una tastiera.
  • simulare i clic del mouse.
  • imitazione della tastiera.
  • simulare il movimento del mouse.

Esistono numerosi esempi di varie macro per Word ed Excel. Tuttavia, il loro principale vantaggio è che possono essere creati senza la necessità di scrivere codice, basta premere il pulsante PLAY e inizierà la registrazione delle tue azioni (selezione del testo, applicazione di uno stile). Al termine della registrazione (premendo STOP), apparirà automaticamente una nuova macro con codice del programma. Successivamente, puoi eseguire la macro salvata, che funzionerà per automatizzare le azioni. È chiaro che indirettamente, le macro possono anche essere considerate una sorta di programma per automatizzare le azioni dell'utente Editor di parole o elaboratore di fogli di calcolo Excel su un computer. Formalmente, vengono create anche le macro in Office, solo all'interno dell'editor.

È necessario comprendere che un concetto come Macro viene utilizzato in altre aree della programmazione e dei linguaggi.

Intercettazione di eventi- aspetti come il movimento del mouse e i clic sui pulsanti sono generalmente chiamati eventi. Possono esserci molti eventi, inoltre, ci sono anche vari oggetti (finestre, applicazioni, aree della finestra e così via). La maggior parte dei programmi per automatizzare le varie azioni dell'utente su un computer deve essere in grado di intercettare eventi sotto forma di movimenti del mouse, clic e sequenze di tasti della tastiera e quindi creare la loro imitazione. Alcuni programmi di automazione consentono di simulare o programmare i movimenti del mouse, altri consentono di intercettare o viceversa simulare le sequenze di tasti sulla tastiera.

Realizzare un programma in grado di riprodurre tutte le azioni del mouse e della tastiera non è un problema, puoi persino attivare l'elaborazione delle finestre. Tuttavia, questa sarà solo una semplice simulazione, adatta se è necessario eseguire rapidamente alcuni clic del mouse su uno o più punti determinati o compilare automaticamente più moduli con i dati.

È chiaro che ci sono molti utenti e ci sono anche molte attività. Qualcuno deve automatizzare il processo di ordinamento e ridenominazione di file o directory. Qualcuno vuole applicare immediatamente un disegno a cento Documenti di parole. In quest'ultimo caso, per i documenti txt, puoi usare l'editor Notepad++.

Va bene, diamo un'occhiata ad alcuni semplici programmi sull'argomento dell'articolo.

Programma Macro Dollar per simulare tastiera, mouse, movimenti e click

macrodollaro- è vecchio e semplice Software automazione e simulazione di azioni di mouse e tastiera. Dato che il programma consente di registrare completamente e quindi simulare le azioni del mouse e della tastiera, può essere definito una macro a tutti gli effetti.

Eseguendo Macro Dollar, vedremo una piccola finestra, pulsanti per avviare la registrazione, interrompere e riprodurre. Ci sono anche alcune caselle di controllo qui:

  • Il più in alto- la finestra del programma sarà sempre in primo piano.
  • ciclo continuo– se selezioni questa opzione, il processo di riproduzione della simulazione di mouse e tastiera continuerà indefinitamente.
  • scuotere- Funzione "shake" quando il cursore del mouse trema durante la riproduzione della registrazione.
  • Riproduci o registra iconizzato– la finestra del programma viene ridotta a icona durante la registrazione.

A giudicare dalle icone e dal campo di testo, il programma consente di creare le proprie macro tramite comandi registrati in script di testo. Tuttavia, per me è sufficiente che Macro Dollar possa registrare le azioni del mouse e della tastiera e quindi imitarle.

Macro Dollar è un programma portatile.

WinMacro è un altro programma semplice simulare i movimenti del mouse e della tastiera

WinMacroè proprio come vecchio programma, come Macro Dollar e funziona ancora alla grande. Sono necessari solo 3 passaggi per la registrazione; specificare il file su cui scrivere, fare clic sul pulsante di registrazione e fare clic tasto di scelta rapida per Pausa/Pausa per interrompere la registrazione. Ogni volta che vuoi riprodurre una registrazione, punta semplicemente sul percorso del file .log salvato e fai clic sul pulsante di riproduzione. La riproduzione può essere annullata utilizzando i tasti di scelta rapida Ctrl + Esc. Il pulsante Opzioni consente di impostare il numero di ripetizioni e la velocità di riproduzione.

GhostMouse - imitazione fantasma della pressione del mouse e dei pulsanti

topo fantasmaè un programma molto semplice per simulare le azioni dell'utente, che ha solo 2 pulsanti nella finestra principale (Play & Record). È più adatto per un uso rapido ea breve termine, ma ovviamente anche per automatizzare attività ripetitive.

A differenza degli esempi precedenti, GhostMouse non è portatile e richiede l'installazione. Nel menu Opzioni, puoi impostare la velocità di riproduzione, nonché specificare cosa il programma deve registrare o non registrare: sequenze di tasti, movimenti del mouse e così via.

Fallo di nuovo: crea un elenco di macro

Fallo ancora non molto diverso dagli altri 3 strumenti sopra elencati, ma un vantaggio che ha è l'elenco delle voci macro visualizzate nel programma, che lo rende conveniente per gli utenti che devono eseguire varie attività senza caricare manualmente uno script nel programma.

Azione/i del programma: automazione completa delle azioni sul computer

Azioni)è un clone visivo di Automator, che, tuttavia, offre opzioni leggermente inferiori nell'elenco delle interazioni disponibili.

Automa- un'ingegnosa applicazione integrata per OS X, che ti consente di automatizzare le azioni su un computer senza conoscere alcun linguaggio di scripting. L'applicazione può essere utile per chi lavora spesso con le foto digitali. Come esempio adatto, puoi specificare la necessità di un'azione automatica: copiare tutte le foto da una determinata cartella in una nuova directory, ridurne la risoluzione di 72 DPI e convertirle dal modello digitale CMYK a RGB. In aggiunta, però, puoi automatizzare il lavoro con il testo, e-mail, documenti PDF, impostare gli script da eseguire in un determinato momento e, ad esempio, lavorare con un database SQL.

Offrono la loro versione sia per Windows che, paradossalmente, per OS X. Puoi impostare l'automazione delle azioni sul tuo computer con e-mail, file e cartelle, immagini, un browser e testo normale.

Il vantaggio è un insieme già pronto di macro che vengono utilizzati più spesso dagli utenti, principalmente per lavorare con foto e contenuti audiovisivi. E se l'azione desiderata (macro) non è nella libreria e vuoi crearla, molto probabilmente la soluzione desiderata può essere trovata sul forum utente dedicato al programma Action(s). È importante notare che il programma stesso per automatizzare le tue azioni personal computer o laptop è scritto in Java. È disponibile il supporto per la simulazione dei movimenti del mouse e delle sequenze di tasti della tastiera.

Conclusione

In rari casi, ricorro alle ultime righe dell'articolo sotto forma di conclusione, ma qui ho deciso di fare delle eccezioni.

All'inizio dell'articolo, ho dimenticato di dire che è disponibile non solo in Word, Excel, ma anche in editore grafico Photoshop. Sì, esiste una tale funzione, che è, in qualche modo, un analogo di una macro. Quindi, puoi registrare le azioni che vengono utilizzate durante l'elaborazione di un disegno, salvarle nello stesso file PSD e quindi riprodurle con calma per altri dati grafici. Credo che ci siano opportunità simili in Corel Draw e altri programmi simili.

Tutti, mentre suonavano, almeno una volta hanno pensato: “Vorrei poter scrivere un programma che suonasse per me!”. Ma di solito questo pensiero rimane solo un pensiero... Qualcosa interferisce costantemente: non sapere da dove cominciare, paura del compito insopportabile, un sussurro da dietro la spalla sinistra “e perché è questo? chi ne ha bisogno per il programma per giocare con il programma? eccetera.

In questa serie di articoli mostrerò che, in primo luogo: "il diavolo non è così spaventoso come è dipinto", e in secondo luogo: in seguito risponderò alla domanda: "perché è necessario?".

Ora iniziamo in modo semplice. Dall'instaurazione della relazione tra il gioco e il programma del giocatore (bot). Il famoso gioco Zuma è preso come una cavia.

Qualsiasi interazione consiste in due processi: inviare dati a "loro" e ricevere dati da "loro". In Zuma, tutto il controllo viene eseguito con il mouse e reazione il gioco si esaurisce con l'aiuto dell'immagine. Di conseguenza, prima di tutto, devi imparare come emulare a livello di codice il comportamento del mouse e ottenere un'immagine dal gioco.

L'obiettivo principale di questo articolo è ottenere un programma che entri in modo indipendente processo di gioco, fa qualcosa lì e quando il gioco ricomincia da capo. Inoltre, questo frame si svilupperà nella direzione in modo che il bot rimanga nel gioco sempre più a lungo fino alla fine del gioco.

Sottoattività ausiliarie risolte: emulazione del mouse, reindirizzamento del mouse alla macchina virtuale, acquisizione di immagini.

Ritiro

Quando si sviluppa il codice per questa serie di articoli, l'approccio è ottenere il risultato il più rapidamente possibile con il minimo sforzo. Questo approccio consente di mantenere la motivazione ad un livello elevato, e non si arrende alla vista del compito opprimente. A causa di ciò:
- in primo luogo, molti momenti insignificanti (dal punto di vista del risultato attuale) verranno rapidamente rivisti, lasciando "stampelle e oggetti di scena" nel codice. E solo alle successive iterazioni, questi punti verranno analizzati separatamente e le "stampelle" verranno sostituite con un codice a tutti gli effetti.
- in secondo luogo, lo stile del codice è più "hacker" del classico C#. Il codice avrà molti lambda, dati anonimi, trucchi, arbitrarietà dell'autore e una completa mancanza di commenti.

Emulazione del mouse

Windows supporta 2 modi standard per emulare un mouse utilizzando 4 diverse funzioni WinApi.

Primo modo: Inviare i propri messaggi finestra (WM_MOUSEMOVE , WM_LBUTTONDOWN , ecc.) al programma utilizzando le funzioni SendMessage o PostMessage.

Per i giochi DirectX (come nel nostro caso), questo metodo non è adatto, perché tali programmi per il polling del mouse utilizzano DirectInput, che esegue il polling del mouse direttamente, ignorando i messaggi di Windows.

Secondo modo: emula direttamente il comportamento del mouse usando le funzioni mouse_event o SendInput. Questo metodo è adatto a qualsiasi programma, inclusi i giochi DirectX a schermo intero. La funzione mouse_event è più semplice, ma è considerata obsoleta, SendInput è più moderno, ma più ingombrante. Fermiamoci a mouse_event.

Le funzioni WinApi da C# vengono chiamate utilizzando la tecnologia PInvoke. Le descrizioni di PInvoke per le funzioni WinApi più comuni sono disponibili su PInvoke.net. La funzione mouse_event non fa eccezione.
public static extern void mouse_event(uint dwFlags, int dx, int dy, uint dwData, UIntPtr dwExtraInfo);

Coordinate del mouse
La funzione mouse_event ha una caratteristica speciale: le coordinate del mouse sono fornite in mickey, non pixel. La conversione di mickey in pixel (e viceversa) dipende dalla risoluzione del monitor principale utilizzato. (0,0) corrisponde all'angolo in alto a sinistra del monitor e (65535, 65535) all'angolo in basso a destra, che fornisce le formule per convertire mickey in pixel e viceversa: mickey_point = pixel_point * (65536, 65536) / screen_size e pixel_point = mickey_point * dimensione_schermo / ( 65536, 65536) .
Operazioni di base
Riassumendo tutto quanto sopra, otteniamo le seguenti operazioni per il controllo del mouse.
Sposta il cursore del mouse sul punto (x,y):
mouse_event(MouseEventFlags.MOVE | MouseEventFlags.ABSOLUTE, x * 65536 / larghezza_schermo, y * 65536 / altezza_schermo);
Clic sinistro del mouse:
mouse_event((MouseEventFlags.LEFTDOWN), 0, 0); System.Threading.Thread.Sleep(100); mouse_event((MouseEventFlags.LEFTUP), 0, 0);
Fare clic con il tasto destro:
mouse_event((MouseEventFlags.RIGHTDOWN), 0, 0); System.Threading.Thread.Sleep(100); mouse_event((MouseEventFlags.RIGHTUP), 0, 0);
Problema: esclusività di input
Quando si emula un mouse tramite la funzione mouse_event, c'è un grave inconveniente: mouse_event simula un mouse per l'intero sistema operativo contemporaneamente e non per una singola applicazione. Ne consegue che mentre il bot è in esecuzione e in riproduzione, altri lavori al computer sono impossibili: eseguire il debug del bot, visualizzare attivamente lo stato del bot, leggere Internet, ecc. Ma c'è una via d'uscita: una macchina virtuale!

Trasferimento del gioco su una macchina virtuale

Il trasferimento del gioco su una macchina virtuale risolve i seguenti problemi:
- in primo luogo, semplifica l'interazione con i giochi che non supportano la modalità finestra e funzionano solo in modalità schermo intero,
- in secondo luogo, l'input del mouse viene sostituito solo sulla macchina virtuale e sulla macchina principale continua a funzionare in modalità normale, consentendo all'utente del computer di fare le proprie cose.

Il bot, a differenza del gioco stesso, è più comodo da eseguire sulla macchina principale. Ciò ti consente di riavviare il bot direttamente da Visual Studio, eseguirne il debug nella stessa posizione, avere un posto dove visualizzare lo stato interno del bot, ecc.

Distribuzione macchina virtuale(in questo caso è stato utilizzato Oracle VirtualBox), l'installazione del SO guest e il trasferimento del gioco avviene in modo regolare, ad eccezione di un punto: il bot ha bisogno della capacità di stabilire una comunicazione di rete tra il SO host e il sistema operativo ospite. Questo viene fatto in molti modi. Un modo è inoltrare una porta specifica dal sistema operativo guest al sistema operativo host utilizzando VirtualBox. Un altro modo è configurare la modalità Bridged Adapter, quindi la macchina virtuale per l'intera rete apparirà come un normale computer e il sistema operativo guest riceverà il suo indirizzo IP tramite DHCP dal router. A questo indirizzo avverrà l'accesso dal SO host al SO guest. (l'autore, in questo caso, ha utilizzato l'opzione con un adattatore bridge)

procuratore
Per controllare il mouse sul SO guest, scriveremo un proxy, che è un semplice server TCP per console. Il suo codice completo è piccolo ed è presentato sotto il taglio. Per semplificare il codice e ridurre le dipendenze, il proxy viene scritto su un socket nudo senza utilizzare remoting, wcf, ecc.

Codice proxy

utilizzando il sistema; utilizzando System.Collections.Generic; utilizzando System.Linq; utilizzando System.Net.Socket; utilizzando System.Runtime.InteropServices; usando System.Text; namespace InputProxy ( class Program ( static void Main(string args) ( var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Bind(new System.Net.IPEndPoint(System.Net.IPAddress. Any, 7001)); socket.Listen(10); for (; ;) ( var client = socket.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(nuovo System.IO.MemoryStream(message)); var msgKind = messageReader.ReadInt32(); Console.WriteLine("message: kind:(0), len:(1)", msgKind, message.Length); switch (msgKind) ( case 0: ( var flags = messageReader.ReadUInt32 (); var x = messageReader.ReadInt32(); var y = messageReader.ReadInt32(); var data = messageReader.ReadUInt32(); mouse_event(flags, x, y, data, UIntPtr.Zero); ) rompere; ) ) 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); ) )


Affinché il proxy funzioni, è sufficiente copiarlo su una macchina virtuale ed eseguirlo. Il proxy attende un messaggio sulla porta 7001 e registra il proprio lavoro sulla console. Per spegnere il proxy, chiudi semplicemente la finestra della console.
Cliente
La connessione a un proxy è ancora più semplice del codice per il proxy stesso.
var client = nuovo System.Net.Sockets.TcpClient(vm_host, 7001); var clientStream = client.GetStream(); var clientWriter = new System.IO.BinaryWriter(clientStream); azione mouse_event = (flags, x, y) => ( var messageStream = new System.IO.MemoryStream(); var messageWriter = new System.IO.BinaryWriter(messageStream); messageWriter.Write(0); messageWriter.Write((uint )flags); messageWriter.Write(x); messageWriter.Write(y); messageWriter.Write(0); var message = messageStream.ToArray(); clientWriter.Write(messaggio.Length); clientWriter.Write(messaggio); clientStream.Flush(); );

Acquisizione di immagini

L'immagine è più facile da catturare direttamente dallo schermo. In .net, c'è una funzione già pronta Graphics.CopyFromScreen per questo. Diamo un'occhiata più da vicino a questo metodo.
In primo luogo, voglio ottenere una bitmap, non una grafica, come output: questo viene risolto utilizzando una funzione ausiliaria:
public static Bitmap GetScreenImage(Rectangle rect) ( var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb); using ( Grafica grafica= Graphics.FromImage(bmp)) ( graphics.CopyFromScreen(rect.Left, rect.Top, 0, 0, rect.Size, CopyPixelOperation.SourceCopy); ) return bmp; )
In secondo luogo, devi sapere quale parte dello schermo vuoi catturare. Ovviamente puoi catturare sempre la stessa parte dello schermo e posizionare il gioco con le mani in questa parte dello schermo, ma questo non è sportivo o conveniente. Inoltre, l'automazione di questo processo avviene con il minimo sforzo. WinApi e PInvoke ci aiuteranno ancora con questo, e più specificamente due funzioni: FindWindow e GetWindowRect . FindWindow ti consente di ottenere l'handle della finestra in base al titolo della finestra e GetWindowRect restituisce la posizione e le dimensioni della finestra sullo schermo tramite l'handle.
Le descrizioni Pinvoke di entrambe le funzioni sono disponibili su pinvoke.net: FindWindow e GetWindowRect .
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; )
E il codice per acquisire l'immagine della finestra della macchina virtuale è il seguente:
vm_sinistra = 8; vm_right = 8; vm_top = 50; vm_bottom = 30; var vm_title = "(!LANG: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); !}
Debolezza
Uno svantaggio significativo di questo approccio è che la finestra acquisita, in primo luogo, deve essere interamente sullo schermo e, in secondo luogo, deve essere posizionata sopra tutte le altre finestre. Questo inconveniente viene livellato utilizzando due (o più) monitor :), quindi la finestra della macchina virtuale si trova sul monitor ausiliario, senza disturbare nessuno, rimanendo in cima alle altre finestre. Anche questo problema completamente risolto utilizzando il metodo precedentemente discusso: trasferire la funzione (screen capture) all'interno della macchina virtuale. Per fare ciò, aggiungi semplicemente la funzione appropriata a InputProxy.

Riprendendo il gioco

Infine, procediamo direttamente alla risoluzione dell'attività impostata per oggi: ciclo del processo di gioco: tutte le attività secondarie necessarie sono state risolte. Il gameplay in Zuma ruota attorno a tre finestre: principale, missione e azione. La finestra principale contiene il menu principale, che ti consente di selezionare il tipo di gioco, la finestra della missione ti chiede di selezionare una missione e il processo di gioco stesso si svolge nella finestra delle azioni.
Il bot determina da solo la finestra corrente in modo semplice: in base al valore del colore in diversi punti chiave. I punti vengono selezionati manualmente: con il metodo di "osservare da vicino".
var screenChecks = new ( new ( Name = "main", Points = new ( new CheckPoint(200, 190, 0xff554a22), new CheckPoint(65, 400, 0xfff44c41) ) ), new ( Name = "missione", Points = new ( new CheckPoint(200, 190, 0xffb5d0c7), new CheckPoint(65, 400, 0xffad7630) ) ), new ( Name = "azione", Points = new ( new CheckPoint(950, 10, 0xff72554b), new CheckPoint(10, 10, 0xff462b1d), ) ), ); funz check = immagine => screenChecks.Where(_check => image.Check(_check.Points)).Select(_check => _check.Name).FirstOrDefault();
Ciclo del bot principale:
var startButtonPoint = new Point(950, 430); var startMissionPoint = new Point(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); mouse_event (MouseEventFlags.LEFTDOWN, 0, 0);System.Threading.Thread.Sleep(150);mouse_event(MouseEventFlags.LEFTUP, 0, 0);System.Threading.Thread.Sleep(50);System.Threading.Thread.Sleep (400); break; case "missione": mouse_event(MouseEventFlags.MOVE | MouseEventFlags.ABSOLUTE, startMissionPoint.X * 65536 / game_width, startMissionPoint.Y * 65536 / game_height); System.Threading.Thread.Sleep(10); mouse_event (MouseEventFlags.LEFTDOWN, 0, 0); System.Threading.Thread.Sleep(150); mouse_event(MouseEventFlags.LEFTUP, 0, 0); System.Threading.Thread.Sleep(50); break; case "action": mouse_event(Mo useEventFlags.LEFTDOWN, 0, 0); System.Threading.Thread.Sleep(150); mouse_event(MouseEventFlags. SINISTRA, 0, 0); System.Threading.Thread.Sleep(50); rompere; case null: bmp.Save("unknown.bmp"); rompere; ) ) catch (eccezione exc) ( Console.WriteLine(exc); ) )
Nella fase di gioco, il bot clicca costantemente, rilasciando palline ad un certo punto. Con una tattica così semplice (piuttosto anche stupida), il bot nella prima missione guadagna 1000-2000 punti e talvolta guadagna anche completamente una barra Zuma.

Sommario

L'obiettivo è stato raggiunto: il frame del bot è scritto e il gameplay è in loop.
Prossimi obiettivi: collegare OpenCV, riconoscere la posizione e il colore delle palline.
PS
Un'immagine per attirare l'attenzione. (L'arancione mostra le aree che la prossima versione del bot ha riconosciuto come palline)

Molto spesso, quando si lavora su un computer, è necessario eseguire una serie di azioni simili con mouse, tastiera, ecc. Tutto questo esaurisce i programmatori intelligenti (e sono sempre intelligenti!), per facilitare il lavoro dell'utente, hanno scritto programmi chiamati autoclicker. Considera come puoi evitare il lavoro di routine usando l'esempio del meraviglioso programma eMouse.

eMouse

Andiamo al sito e il suo con. L'installazione non è niente di complicato. Dopo averlo installato, eseguilo: viene visualizzata una finestra.

Sulla sinistra c'è il pulsante "Rec" (registra) - dopo aver premuto, le tue azioni con il mouse e la tastiera verranno registrate. "Play" perderà (ripetere le azioni registrate). E quante volte è possibile impostare nel campo "x" (è impostato 1 volta nell'immagine), spuntando il campo "Riproduzione loop"

In basso a sinistra ci sono le caselle di controllo Registra: Tasti e Mouse, ad es. se queste caselle di controllo sono selezionate, le azioni del mouse e della tastiera verranno registrate (e se non sono selezionate, di conseguenza).

È possibile visualizzare (e modificare) le impostazioni. Fare clic sul collegamento "Modifica" e menù contestuale seleziona "Impostazioni"

Ecco le impostazioni.

Tasti di scelta rapida installati. Per avviare la registrazione delle azioni - F5 e per mettere in pausa - F11, per riprodurre - F12.

Le azioni registrate (script) possono essere salvate, ad es. puoi scrivere un mucchio di tutti i tipi di sequenze e chiamarle secondo necessità.

Apri "File" e seleziona "Salva script come..." (Salva lo script come ...) e salvalo dove serve.

AutoClicker (il più primitivo)

Se hai bisogno di fare un numero enorme di clic con il pulsante destro o sinistro del mouse, allora questo programma fa per te. Ottimo da usare Vkontakte nei giochi PROFIT! Super Clicker o Clicker.

Il programma è a pagamento, ma la sua versione "gratuita" può essere scaricata da. Lo lanciamo. L'interfaccia del programma è abbastanza semplice.

Come lavorare con il pulsante sinistro del mouse è scritto sul lato sinistro e sulla destra - a destra (ci occuperemo dei cursori in seguito). Usiamo i tasti di scelta rapida.

Iniziamo il programma, ad es. premere ALT + 1 sulla tastiera. Questo non significa che premiamo il tasto ALT sulla tastiera, quindi il tasto "+" e quindi il tasto con il numero "1!. No, premiamo semplicemente i tasti "ALT" e "1" contemporaneamente.

Andiamo su Vkontakte, cerchiamo un gioco in cui è necessario fare un sacco di clic, spostare il mouse e premere ALT + 1. E finché non premiamo ALT + 2 clic continueranno.

Ghost Mouse può essere scaricato all'indirizzo . L'installazione non è niente di complicato. Lanciamo.

Per registrare le azioni, premere il pulsante rosso. Oppure premi F9, per riprodurre le azioni, premi " Ctrl + Q«.

Pubblicazioni correlate