我知道這個問題已經得到解答。這是我的問題。我有一個帶有按鈕和文本框的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,但它沒有幫助。 –