Как скопировать текст из приложения C# в Notepad.exe под Windows 11? [дубликат] ⇐ C#
Как скопировать текст из приложения C# в Notepad.exe под Windows 11? [дубликат]
Я использую следующий код для копирования текста из приложения C# в Notepad.exe:
[DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr FindWindowEx (IntPtr hwndParent, IntPtr hwndChildAfter, строка lpszClass, строка lpszWindow); [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); Private void btnShowLog_Click (отправитель объекта, EventArgs e) { число интервалов = 0; вар блокнот = Process.Start("notepad.exe"); блокнот.WaitForInputIdle(); while (блокнот == null && count < 20) { Thread.Sleep(500); считать++; } Clipboard.SetText(txbLog.Text); SendMessage(FindWindowEx(notepad.MainWindowHandle, new IntPtr(0), "Edit", null), 0x000C, 0, txbLog.Text); } Для Windows 10 это работает нормально.
Для Windows 11 это не так. Блокнот открыт, но текст не вставлен.
Думаю, это потому, что в Windows 11 в Блокнот были добавлены вкладки, чтобы изменить внутреннюю структуру программы.
Кто-нибудь знает, как мне изменить свой код, чтобы он работал в Windows 11?
Изменить: код в ответах на связанные вопросы также не работает. Я получаю желаемый результат для Windows 10, но не для Windows 11.
Я использую следующий код для копирования текста из приложения C# в Notepad.exe:
[DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr FindWindowEx (IntPtr hwndParent, IntPtr hwndChildAfter, строка lpszClass, строка lpszWindow); [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); Private void btnShowLog_Click (отправитель объекта, EventArgs e) { число интервалов = 0; вар блокнот = Process.Start("notepad.exe"); блокнот.WaitForInputIdle(); while (блокнот == null && count < 20) { Thread.Sleep(500); считать++; } Clipboard.SetText(txbLog.Text); SendMessage(FindWindowEx(notepad.MainWindowHandle, new IntPtr(0), "Edit", null), 0x000C, 0, txbLog.Text); } Для Windows 10 это работает нормально.
Для Windows 11 это не так. Блокнот открыт, но текст не вставлен.
Думаю, это потому, что в Windows 11 в Блокнот были добавлены вкладки, чтобы изменить внутреннюю структуру программы.
Кто-нибудь знает, как мне изменить свой код, чтобы он работал в Windows 11?
Изменить: код в ответах на связанные вопросы также не работает. Я получаю желаемый результат для Windows 10, но не для Windows 11.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение