ну, я пишу бота, который будет использовать определенные координаты на экране, а затем имитирует 15 кликов (каждый клик с разными координатами). Я уже работал с координатами, которые я вводил вручную в код, но теперь мне нужен способ записи этих координат. То, что я хотел сделать, это: пользователи нажимают кнопку, тогда программа показывает сообщение с сообщением «щелкните правой кнопкой мыши по главному меню», пользователь щелкнет правой кнопкой мыши, и эти координаты будут записаны в массиве, тогда программа покажет вторую сообщение, требующее щелкнуть правой кнопкой мыши следующую кнопку и так ... Моя проблема в том, что я не знаю, как заставить метод ждать, пока пользователь щелкнет правой кнопкой мыши, чтобы продолжить.Сделайте способ подождать, щелкнув правой кнопкой мыши, чтобы перейти к следующему шагу (форма C#)
Я проверил свою программу, сделав событие, которое вызвало бы каждый раз я правой кнопкой мыши и показать координаты в MessageBox, используя класс UserActivityHook с содержит OnMouseActivity событие:
UserActivityHook actHook;
void MainFormLoad(object sender, System.EventArgs e)
{
actHook = new UserActivityHook();
// crate an instance with global hooks
// hang on events
actHook.OnMouseActivity+=new MouseEventHandler(MouseMoved);
}
public void MouseMoved(object sender, MouseEventArgs e)
{
if (e.Clicks > 0)
{
if (e.Button.Equals(MouseButtons.Right))
{
MessageBox.Show("X:" + e.X + " Y:" + e.Y);
}
}
}
Я пытаюсь сделать что-то вроде:
private void button1_Click(object sender, EventArgs e)
{
RecordMacro(cords, 1);
}
public void RecordMacro(int coordinates[][], int slotnumber){
MessageBox.show("Right click main menu");
//saves coordinates on [0][0] and [0][1]
WaitForRightClickAndSaveCords(coordinates[][]);
MessageBox.show("Right click resupply button");
//saves coordinates on [1][0] and [1][1]
WaitForRightClickAndSaveCords(coordinates[][]);
...
}
Я еще новичок и это мой первый вопрос в StackOverflow (я обычно найти ответ просматривающие здесь и нет необходимости задавать себе), поэтому я с удовольствием буду принимать любые критики.
'+ 1' Мне нравится этот метод, хотя (потенциал) длина RecordMacro предлагает мне какое-то очереди, чтобы действия не были жестко закодированы. – BradleyDotNET
@BradleyDotNET Я просто демонстрировал, как вызвать метод; все дело в том, что после того, как вы используете метод, он становится очень простым. Если он хочет вызвать его в цикле, он может это сделать. – Servy
Ты спасатель. спасибо за ясный ответ, и да, как говорит Брэдли, я просто показывал намерение там с «неортодоксальным ручным способом сохранения координат», я думал об использовании цикла. –