Эмуляция нажатия клавиши в консоли - C#

Узнай цену своей работы

Формулировка задачи:

В общем... вообще, у меня есть вот такая вот фиговина:
ConsoleKeyInfo key = Console.ReadKey();
switch (key.Key)
{
...
}
Мне нужно сделать так, дабы эмулировалось нажатия клавиши. Увы, но использовать эмулятор из Form не получается, а использовать
key.Key = ConsoleKey.Enter;
нельзя Есть какие предложения?

Решение задачи: «Эмуляция нажатия клавиши в консоли»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
 
 
namespace ConsoleApplication1
{
    class Program
    {
 
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName,
            string lpWindowName);
 
        [DllImport("user32.dll")]
        static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
 
        const int WM_KEYDOWN = 0x0100;
        const int WM_KEYUP = 0x0101;
        const int WM_CHAR = 0x0102;
        
 
 
        static void Main(string[] args)
        {
 
          
            Console.Title = "con_wi";
 
            IntPtr handle = FindWindow(@"ConsoleWindowClass", @"con_wi");
            
            
           
 
            if (handle == null) Console.Write("null handle");
 
 
 
            SendMessage(handle, WM_CHAR, (int)'!', null);
            Console.ReadKey();
 
            for (int i = 65; i < 91; i++) { SendMessage(handle, WM_CHAR, i, null); Console.ReadKey(); }
 
 
              
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы