#c# #winforms #sendkeys
#c# #winforms #sendkeys
Вопрос:
Я пытаюсь создать простое автоматическое нажатие клавиш. Она отлично работает в блокноте и т. Д., Но Не работает в окне игры.
У вас есть какие-либо идеи?
namespace PoyBot
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.TopMost = true;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
//timer2.Start();
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
//timer2.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
SendKeys.SendWait("z7");
}
else if (checkBox2.Checked)
{
SendKeys.Send("z8");
}
}
private void timer2_Tick(object sender, EventArgs e)
{
if (checkBox3.Checked)
{
SendKeys.Send("0");
}
}
}
}
Комментарии:
1. Игры очень часто используют raw input api для ввода с клавиатуры. Простой способ остановить обман.
2. Программное обеспечение Logitech gaming работает в этой игре, я набираю «Z» и «1», и оно регистрируется в игре. Я просто пытаюсь имитировать то, что делает программное обеспечение logitech
3. Что ничего не меняет в заявлении Ганса.
4. Если программное обеспечение logitech gaming может копировать фактические нажатия клавиш, то это означает, что это выполнимо, нет? Это было то, что я пытался сделать
Ответ №1:
‘nameOfYourWindow’ вы можете найти применение spyxx.exe или с
[DllImport("user32.dll")]
internal static extern IntPtr GetForegroundWindow();
После того, как вы сможете найти hwnd вашего окна и нажать кнопку отправки
IntPtr hWND = FindWindow(null, nameOfYourWindow);
PostMessage(hWND, 0x0100, (int)Keys.Tab, 0);
Thread.Sleep(30);
PostMessage(hWND, 0x0101, (int)Keys.Tab, 0);