Загрузка...

Вопрос по Windows Forms (С#)

Тема в разделе C# создана пользователем ребенок 21 дек 2022. 316 просмотров

Загрузка...
  1. ребенок
    ребенок Автор темы 21 дек 2022 оставь мне роспись на стенке, пожалуйста 73 21 мар 2019
    Как после нажатия кнопки в форме сделать имитацию нажатых кнопок на клавиатуре?

    Хочу сделать программу анти афк, чтобы после ухода человека от компьютера персонаж в игре мог двигаться (вперед назад) и тем самым не выгонялся из игры, все форумы облазил, обсмотрел не нашел решения для этой проблемы, есть button после нажатия на которую должен запускаться цикл из зажатия кнопок W, A, S, D (и по возможности желателен прыжок) что можно сделать с этим? пожалуйста напишите пример кода или exeшник который можно декомпилировать
     
    21 дек 2022 Изменено
  2. wDude
    wDude 21 дек 2022 Боюсь быть не там и не тем. 3667 14 авг 2017
  3. DarKRs
    DarKRs 21 дек 2022 Ура, у меня наконец есть статус 1232 15 июл 2022
    ребенок, Не стоит так сильно запариваться. Если тебе нужно после ухода от компьютера (т.е. пользователь не контачит с компом во время работы скрипта). То смотри в сторону AHK (AutoHotKey). За день можно написать простенький скрипт который будет двигаться за тебя
     
  4. Lindlinder
    Lindlinder 2 янв 2023 6 3 сен 2020
    CSHARP
    using System;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    namespace KeyPressSimulator
    {
    public partial class Form1 : Form
    {
    [DllImport("user32.dll")]
    public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);

    private const int KEYEVENTF_EXTENDEDKEY = 0x1;
    private const int KEYEVENTF_KEYUP = 0x2;

    private bool isRunning = false;

    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    isRunning = !isRunning; // toggle the running state

    if (isRunning)
    {
    button1.Text = "Stop";

    // Create an array of keys to simulate
    Keys[] keys = { Keys.W, Keys.A, Keys.S, Keys.D, Keys.Space };

    // Simulate the press of each key in the array in a loop
    while (isRunning)
    {
    foreach (Keys key in keys)
    {
    keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
    keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
    }
    Thread.Sleep(100); // sleep for 100 milliseconds
    }
    }
    else
    {
    button1.Text = "Start";
    }
    }
    }
    }
     
Top