Когда я обнаруживаю пиксель с заданным цветом, я хочу отправить ключ «k». Проблема в том, что, хотя окно активно, со следующим кодом оно отправляет мне исключение: SendKeys не может работать внутри этого приложения, потому что приложение не обрабатывает сообщения Windows. Либо измените приложение для обработки сообщений, либо используйте метод SendKeys.SendWait. Похоже, что метод Sendwait нажимает клавишу недостаточно быстро (но, по крайней мере, не вызывает исключений). Меня действительно не волнует, является ли требуемое решение «грязным», я использую его один раз.
static void Main(string[] args)
{
string ligne;
string previousligne = string.Empty;
int compteur = 0;
while (true)
{
Color pixColor = Win32.GetPixelColor(System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y);
ligne = pixColor.Name;
if (previousligne != ligne)
{
if (ligne == "ffcecefe")
{
SendKeys.Send("k");
}
Console.WriteLine(ligne);
System.IO.File.AppendAllText(@"C:\Users\Public\WriteLines.txt", "-----" + DateTime.Now.Minute + ":" + DateTime.Now.Second + ":" + DateTime.Now.Millisecond + " = " + ligne);
previousligne = ligne;
compteur++;
if (compteur % 10 == 0)
{
System.IO.File.AppendAllText(@"C:\Users\Public\WriteLines.txt", "---------" + compteur);
Console.WriteLine("---------" + compteur);
}
}
}
}
Если вы знаете Final Fantasy X, я пытаюсь автоматизировать процесс ухода от молний: видео
Я мог бы просто обмануть, чтобы получить результат в игре (или сделать это законным способом), и это уже было бы сделано, но если бы я мог узнать немного больше о C # вместо этого, было бы лучше.