我正在使用PostMessage將輸入發送到另一個應用程序中的Flash對象。它工作正常,直到我嘗試發送一個Unicode字符。在這個例子中:使用PostMessage發送Unicode字符
邁克爾的書
撇號是不是真的那麼,它不是一個ASCII 39,而是一個Unicode U + 2019。通過它同時跨越1個字符發送的時間,它失去了作爲一個Unicode值和土地作爲原始字符組成的Unicode
麥克拉€™的書
如果我複製並粘貼到窗口它移動正常,如果我加載到該窗口中的文本文件,它加載正常。所以接收窗口能夠接收unicode,但是我發送它的方式一定是不正確的。任何幫助將不勝感激。
private void SendKeysToForm(string Message)
{
for (int i = 0; i < Message.Length; i++)
{
PostMessage(hwnd, WM_CHAR, (IntPtr)Message[i], IntPtr.Zero);
}
}
也許WM_UNICHAR會更好。取決於,Adobe軟件是呃,特別的。 –
爲什麼你發送字符爲'IntPtr'而不是int? –
@HansPassant [WM_CHAR](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646276(v = vs.85).aspx)使用UTF-16位,「WM_UNICHAR」用於UTF-32 –