Есть ли способ отправить входные данные в приложение, которое в настоящее время не находится на переднем плане? C# - PullRequest
0 голосов
/ 04 мая 2020
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Diagnostics;
using System.Linq.Expressions;
using System.Windows.Forms;
using System.Threading;
using System.Runtime.InteropServices;

namespace ConsoleApp4
{

    class Program
    {
        #region findow(ex),sendmessage;
        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string sClassName, string sAppName);
        [DllImport("User32.dll")]
        public static extern Int32 SendMessage(IntPtr hWnd, int Msg, int wParam, string lParam);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
        #endregion;
        const int WM_SETTEXT = 0X000C;

        static void Main(string[] args)
        {
            IntPtr DisWindow = FindWindow(null, "Discord");

            IntPtr DisWindowChild = FindWindowEx(DisWindow, null, "Chrome_RenderWidgetHostHWND", "Chrome Legacy Window");
            Console.WriteLine(DisWindow);
            SendMessage(DisWindowChild, WM_SETTEXT, 0, "hey all");

            System.Threading.Thread.Sleep(-1);

        }
    }
}

Итак, я пытаюсь найти обработчик окна Discord и отправить в него сообщение. Пока что он действительно только находит обработчик (я думаю) и выводит его на консоль. Я действительно не знаю, что мне делать, я вроде застрял. Буду признателен за любую помощь, особенно если есть более простой способ сделать это, о котором я просто не знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...