Ich verwende PostMessage, um Eingaben an ein Flash-Objekt in einer anderen Anwendung zu senden. Es funktioniert gut, bis ich versuche, ein Unicode-Zeichen zu senden. In diesem Beispiel:Verwenden von PostMessage zum Senden von Unicode-Zeichen
Michaels Buch
Der Apostroph ist nicht wirklich so, es ist nicht ein ASCII 39, sondern ein Unicode U + 2019. Mit der Zeit wird es zu einem Zeitpunkt über 1 Zeichen gesendet wird, wird es als Unicode-Wert und landet als Ausgangs Zeichen verloren die Unicode
Michaela € ™ s Buch
bildenWenn ich kopieren und in das Fenster es bewegt sich gut, und wenn ich eine Textdatei in dieses Fenster lädt, lädt es gut. Das Empfangsfenster kann also Unicode empfangen, aber die Art, wie ich es sende, muss nicht korrekt sein. Jede Hilfe würde sehr geschätzt werden.
private void SendKeysToForm(string Message)
{
for (int i = 0; i < Message.Length; i++)
{
PostMessage(hwnd, WM_CHAR, (IntPtr)Message[i], IntPtr.Zero);
}
}
Vielleicht WM_UNICHAR wird besser funktionieren. Hängt davon ab, Adobe-Software ist, ähm, besonders. –
Warum senden Sie das Zeichen als IntPtr anstelle von Int? –
@HansPassant [WM_CHAR] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646276 (v = vs.85) .aspx) verwendet UTF-16-Bit, 'WM_UNICHAR' ist für UTF-32 –