Я знаю, что на этот вопрос уже был дан ответ. Вот моя проблема. У меня есть форма Windows с кнопкой и текстовым полем. Пользователь вводит информацию в текстовое поле, и когда пользователь нажимает кнопку, запускается экземпляр блокнота и текст текстового поля затем загружается в блокнот.Копирование текста в блокнот в C#
Вот мой код (который я получил от вопроса на этом сайте)
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);
private void btnCopyToNotepad_Click(object sender, EventArgs e)
{
StartNotepad();
Process[] notepads = Process.GetProcessesByName("notepad");
if (notepads.Length == 0) return;
if (notepads[0] != null)
{
Clipboard.SetText(textBox1.Text);
SendMessage(FindWindowEx(notepads[0].MainWindowHandle, new IntPtr(0), "Edit", null), 0x000C, 0, textBox1.Text);
}
}
private static void StartNotepad()
{
Process.Start("notepad.exe");
}
Когда я запускаю этот код, пошаговую отладки, он прекрасно работает, и логика делает то, что его намеревались сделать (скопировать текст в экземпляр блокнота). Когда я запускаю его в выпуске, ничего не копируется в экземпляр блокнота. Есть идеи, почему это происходит? Нет я не бегу несколько экземпляров блокнота ..
Знаете ли вы, что не работает или не работает? Находится ли это процесс блокнота? Поместите некоторые заявления о регистрации и посмотрите, что происходит. Вы должны уметь отлаживать свой код – dgorti
Это скорее задает вопрос о том, почему вы не просто напишете текстовый файл и откройте его в блокноте? – spender
Я думаю, что это законный вопрос, проблема заключается в том, что стрельба SendMessage слишком быстро срабатывает. Я попытался поставить Task.Delay, но это не помогло. –