Как после нажатия кнопки в форме сделать имитацию нажатых кнопок на клавиатуре? Хочу сделать программу анти афк, чтобы после ухода человека от компьютера персонаж в игре мог двигаться (вперед назад) и тем самым не выгонялся из игры, все форумы облазил, обсмотрел не нашел решения для этой проблемы, есть button после нажатия на которую должен запускаться цикл из зажатия кнопок W, A, S, D (и по возможности желателен прыжок) что можно сделать с этим? пожалуйста напишите пример кода или exeшник который можно декомпилировать
Ну вообще вроде нужно двигаться в сторону WinApi. Держи пример реализации чего-то похожего, это не сложно: https://stackoverflow.com/questions...-to-browser-in-c-sharp-using-sendkey-function
ребенок, Не стоит так сильно запариваться. Если тебе нужно после ухода от компьютера (т.е. пользователь не контачит с компом во время работы скрипта). То смотри в сторону AHK (AutoHotKey). За день можно написать простенький скрипт который будет двигаться за тебя
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"; } } } } 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"; } } } }