.NET 3.x Отправка текста через SendMessage - C#
Формулировка задачи:
Как отправить текст не в заголовок а в основную часть блокнота???
Если для отправки в заголовок я использую:
Использую импорты и константу:
Функция проверки окна и отправка текста:
Как отправить текст не в заголовок а в само тело куда пишется текст в блокноте?!
Хочу так же уточнить парочку деталей:
1 - За место полного названия: Textbovik.txt — Блокнот , можно ли найти дескрипт окна просто как Блокнот?
2 - Как сделать цикл проверки на открытие окна? ( пробовал
но без результатно).
3 - Что лучше использовать FindWindow или FindWindowEx ? ( И как по не могу находить окно) ??
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
public const int WM_SETTEXT = 0X000C;IntPtr ptr = FindWindow(null, "Textbovik.txt — Блокнот");
if (ptr == IntPtr.Zero)
{
Console.WriteLine("Окно не найдено");
}
else
{
SendMessage(ptr, WM_SETTEXT, 0, "12345"); // сама функция отправки текста в заголовок
}while(true)
{
...
}
up...
Решение задачи: «.NET 3.x Отправка текста через SendMessage»
textual
Листинг программы
using System;
using System.Runtime.InteropServices;
namespace CleanConsole
{
class Program
{
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
public const int WM_SETTEXT = 0X000C;
static void Main(string[] args)
{
IntPtr ptr = FindWindow(null, "Textbovik.txt — Блокнот");
if (ptr == IntPtr.Zero)
{
Console.WriteLine("Окно не найдено");
}
else
{
IntPtr child = FindWindowEx(ptr, new IntPtr(0), "Edit", null);
string s = "Text";
SendMessage(child, 0x000C, 0, s);
//SendMessage(ptr, WM_SETTEXT, 0, "12345"); // сама функция отправки текста в заголовок
}
}
}
}