.NET 3.x Отправка текста через SendMessage - C#

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

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

Как отправить текст не в заголовок а в основную часть блокнота??? Если для отправки в заголовок я использую: Использую импорты и константу:
Листинг программы
  1. [DllImport("user32.dll", SetLastError = true)]
  2. public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  3. [DllImport("user32.dll")]
  4. public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
  5. public const int WM_SETTEXT = 0X000C;
Функция проверки окна и отправка текста:
Листинг программы
  1. IntPtr ptr = FindWindow(null, "Textbovik.txt — Блокнот");
  2. if (ptr == IntPtr.Zero)
  3. {
  4. Console.WriteLine("Окно не найдено");
  5. }
  6. else
  7. {
  8. SendMessage(ptr, WM_SETTEXT, 0, "12345"); // сама функция отправки текста в заголовок
  9. }
Как отправить текст не в заголовок а в само тело куда пишется текст в блокноте?! Хочу так же уточнить парочку деталей: 1 - За место полного названия: Textbovik.txt — Блокнот , можно ли найти дескрипт окна просто как Блокнот? 2 - Как сделать цикл проверки на открытие окна? ( пробовал
Листинг программы
  1. while(true)
  2. {
  3. ...
  4. }
но без результатно). 3 - Что лучше использовать FindWindow или FindWindowEx ? ( И как по не могу находить окно) ??
up...

Решение задачи: «.NET 3.x Отправка текста через SendMessage»

textual
Листинг программы
  1. using System;
  2. using System.Runtime.InteropServices;
  3.  
  4. namespace CleanConsole
  5. {
  6.     class Program
  7.     {
  8.         [DllImport("user32.dll", SetLastError = true)]
  9.         public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  10.         [DllImport("user32.dll")]
  11.         public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
  12.         [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
  13.         public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
  14.  
  15.         public const int WM_SETTEXT = 0X000C;
  16.  
  17.         static void Main(string[] args)
  18.         {
  19.             IntPtr ptr = FindWindow(null, "Textbovik.txt — Блокнот");
  20.             if (ptr == IntPtr.Zero)
  21.             {
  22.                 Console.WriteLine("Окно не найдено");
  23.             }
  24.             else
  25.             {
  26.                 IntPtr child = FindWindowEx(ptr, new IntPtr(0), "Edit", null);
  27.                 string s = "Text";
  28.                 SendMessage(child, 0x000C, 0, s);
  29.                 //SendMessage(ptr, WM_SETTEXT, 0, "12345"); // сама функция отправки текста в заголовок
  30.             }
  31.         }
  32.     }
  33. }

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


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

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

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы