Domanda

Sto facendo un bot per un gioco in Flash, e ho capito come importare tutti i AutoIt funzioni nel mio codice C#.

string title = "Minesweeper";
string full = auto.WinGetTitle(title,"");
string handle = auto.WinGetHandle(full, "");
if (auto.WinExists(full, "") == 1)
    textBox1.Text = "window exists";
addressBox.Text = full;

for (int r = 1; r < 40; r++)
{
    auto.ControlClick(full, "", "", "left", 2, r * 10, r * 10);
    //auto.ControlClick(handle, "", "", "left", 2, r * 10, r * 10);
}

(Io sono abbastanza sicuro che il commentata uno dovrebbe essere quello con la maniglia e viceversa, ma questo funziona per Minesweeper.)

Così funziona per campo minato e non richiedono di essere la finestra attiva.Quando provo a farlo funzionare sul mio gioco in Flash richiede la finestra di Internet Explorer attivo.E ' questo qualcosa che richiede Flash o c'è qualcosa che potrei fare per farlo funzionare quando il gioco è ridotto al minimo?

Questo non deve essere fatto utilizzando il AutoIt importazioni.Ho provato SendMessage da user32 a un certo punto anche, ma che non ha funzionato per il contenuto Flash per me.

Ho appena provato questo su un sito a caso invece di un sito in Flash o campo minato e, per qualche ragione, il codice funziona, se provo a eseguire, all'Autoit programma di scripting, ma non dal mio programma in C#...

Giugno 20th, 2012:Io sono abbastanza sicuro che questo ha qualcosa a che fare con il modo in cui il manico diventa passato.Ho fatto alcuni test con la chiamata di una AutoIt file EXE e il manico, mi da il codice C# come argomento, devo aggiungere un 0x ad esso, e quindi entro il AutoIt codice che ho lanciarla da una stringa a un HWnd, in modo che possa essere qualcosa, nel qual caso non so cosa fare, dato che la funzione importata si basa su una stringa di input per il manico.

È stato utile?

Soluzione

Qualcosa che si può provare per escludere handle di finestra e variabile di problemi di gestione.Non ci dovrebbe essere alcun bisogno di utilizzare WinGetTitle il "campo minato" titolo della finestra dovrebbe funzionare bene.Secondo il mio AutoIt v3 Finestra Info strumento in Windows 7 il titolo e la classe di Dragamine finestra sono entrambi Dragamine.Così difficile codifica

auto.Tenendo premuto il tasto control("[TITOLO:Minesweeper;CLASSE:Minesweeper], "", "", "sinistra", 2, r * 10, r * 10);

potrebbe funzionare.Per saperne di più su come funziona vedere La Finestra Avanzate Descrizioni in AutoIt file di aiuto.Se questo ancora non funziona cercare WinTitleMatchMode nel file della guida.Esso consente di impostare alcune regole di trattamento favorevole, nel titolo della finestra di corrispondenza che potrebbe rendere questo più facile per voi.

AutoIt X è AutoIt DLL/COM di controllo di versione è come si dovrebbe aggiungere AuotIt di qualsiasi lingua che ha DLL/COM assistenza.In caso di chiunque altro chiedevo come usare AutoIt in C#.Purtroppo AutoIt X spesso in ritardo di sviluppo e di test dalla lingua principale.Anche se non ho motivo di pensare il tuo problema è causato da un bug solo di dare un po ' di sfondo sul AutoItX progetto.Se non l'hai già fatto dovresti inviare una copia di questa domanda per il ActiveX/COM di Aiuto e di Sostegno (AutoItX) forum.Uno dei migliori cose su AutoIt nella mia esperienza, negli anni, è la comunità (che non si è mosso molto).Quella particolare sezione del forum è frequentato da alcuni degli sviluppatori del linguaggio, che sarebbe felice di aiutare.

Come la tua 20 giugno nota, AutoIt considera tutte le variabili come corde fino a quando rileva che la sua qualcosa di speciale.Non sa un valore esadecimale a meno che non si inizia con la 0x hai citato.Questo ha causato tutti i tipi di strani problemi per me in passato.Mi hanno più volte dovuto aggiungere zero e una variabile per ottenere AutoIt per valutare correttamente dopo.Questo non accade spesso con AutoIt3 ma solo qualcosa da tenere a mente.

Se avete bisogno di qualsiasi AutoIt codice di riferimento un sacco di membri della AutoIt forum hanno fatto Dragamine bot è possibile controllare ed eventualmente di vedere qualcosa di utile.

Altri suggerimenti

Assicurati che il tuo in esecuzione il programma in C# come admin.Questa è l'unica differenza che posso vedere per un metodo di lavoro e l'altro no.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top