0

Всем привет, я очень новичок в программировании. Куда бы я не вставлял код, он всегда выдает ошибку. 2 месяца я не могу продвинуться, я читал учебник c++ и форум windows microsoft, но не нашел ответ. Моя задача сделать так, чтобы при нажатии быстрой клавиши ctrl+shift+P (или ctrl+up+P) в окне другой программы выполнялись действия: ctrl+V, ожидание 4 секунды, enter, 7 раз Tab, ожидание, enter, ожидание, скролл вниз, ожидание, Ins, ctrl+enter, ожидание 4 секунды, 9 раз Tab. И чтобы в будущем я мог менять сами действия местами, программировать. Пробелы в коде расставлены правильно в visual studio 2019. Помогите, друзья, куда вставлять сам код.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1 { public partial class CIA_Special_Agents : Form { public CIA_Special_Agents() { InitializeComponent(); }

private void label1_Click(object sender, EventArgs e)
{

}

private void label2_Click(object sender, EventArgs e)
{

}

private void label3_Click(object sender, EventArgs e)
{

}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void textBox3_TextChanged(object sender, EventArgs e)
{

}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

private void label4_Click(object sender, EventArgs e)
{

}

private void label5_Click(object sender, EventArgs e)
{

}

private void textBox5_TextChanged(object sender, EventArgs e)
{

}

private void textBox2_TextChanged(object sender, EventArgs e)
{

}

private void CIA_Special_Agents_Load(object sender, EventArgs e)
{

}

private void pictureBox1_Click(object sender, EventArgs e)
{

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    if (checkBox1.Checked == true)
    {
        button1.Enabled = true;
    }

    else
    {
        button1.Enabled = false;
    }
}

private void label9_Click(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{

}

}

}

  • Пожалуйста, уточните вашу конкретную проблему или приведите более подробную информацию о том, что именно вам нужно. В текущем виде сложно понять, что именно вы спрашиваете. – Дух сообщества Nov 03 '21 at 15:01
  • https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.sendkeys.send?view=windowsdesktop-5.0 – Qwertiy Nov 03 '21 at 15:29

1 Answers1

2

Ваш вопрос звучит как "напишите мне автокликер с нуля". Разделите задачу на мелкие подзадачи и решайте по отдельности. Начните писать код. Почитайте или посмотрите курсы по шарпу. Незнание основ языка и ООП не позволит вам продвинуться в задаче и сфокусироваться на проблеме. Двигание кнопочек в дизайнере формы и кликание по ним знаний не добавит.

Видите метод CIA_Special_Agents_Load? Этот метод называется "обработчик события Form.Load". Код в этом методе выполняется 1 раз при загрузке формы, можете начать писать стартовый код в этом методе между фигурными скобками. Собственно это и есть ответ на ваш вопрос.

У формы много разных событий, их список можно посмотреть в дизайнере формы, выделив форму и нажав на кнопочку с молниец в правом нижнем углу. Все эти события возникают в разных условиях, например Form.Closing вызывается перед закрытием формы, дважды кликнув по событию можно создать для него новый обработчик, или подключить уже написанный выбрав из списка, предлагаемого студией. События есть не только у формы, но и у всех без исключения элементов на ней.

Подскажу еще только, чтобы запустить действие при нажатии комбинации горячих клавиш, вам нужно это решение.

А для симуляции ввода может помочь старый добрый NuGet пакет InputSimulator, ну если конечно вы не желаете напрямую работать с методом Win32 API SendInput, сразу скажу, задача непростая, с пакетом получится легче.

Чтобы редактировать список действий, создайте класс, содержащий данные о действии и коллекцию из этих классов. Подключите коллекцию например к DataGridView. Как это сделать - показано здесь.

Как видите, много работы. Но если тупо копировать чужой код к себе в проект, ничего хорошего не выйдет, надо знать основы. Начать изучать их можно например по этим коротким и веселым видео. Я сам по ним когда-то начинал учиться.

aepot
  • 49,560