открыть exe - FindWindowsEX - PullRequest
       9

открыть exe - FindWindowsEX

0 голосов
/ 04 апреля 2011

Я запускаю приложение, которое может обрабатывать исполняемый файл. С помощью process.start () и FindWindowsEx () я запускаю исполняемый файл и отправляю ему PostMessage ()

Мой exe-файл является формой приложения.Если у меня есть несколько текстовых полей в моем исполняемом файле, и если я хотел бы заполнить только одно из этих текстовых полей сообщением, что мне делать?

 pControl = FindWindowEx(pWnd, IntPtr.Zero, infoChild.EditFieldName, IntPtr.Zero);
        while (pControl != IntPtr.Zero)
        {
            pControls.Add(pControl);
            pControl = FindWindowEx(pWnd, pControl, infoChild.EditFieldName, IntPtr.Zero);


        }

       Clipboard.SetText("Message!");
       foreach (IntPtr pPost in pControls)
        {
        { PostMessage(pPost, (uint)WindowMessage.WM_PASTE, 0, 0); }
        }
//the codei've posted automatically populates all the textboxes from my form with "Message!"

спасибо за совет

1 Ответ

0 голосов
/ 04 апреля 2011

Ну, вы не можете получить доступ к именам ваших элементов управления, используя эти методы.Что бы я сделал, это переопределил метод WndProc в форме вашего exe-файла, чтобы он отвечал на сообщение WM_USER и возвращал дескриптор окна текстового поля, с которым вы хотите связаться.

Тогда вам следует использоватьSendMessage / WM_SETTEXT, чтобы установить текст в текстовом поле, используя этот дескриптор.Приложение, которое уничтожает содержимое буфера обмена без предварительного предупреждения пользователя, должно быть изгнано из всех известных и неизвестных вселенных!

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