Hallo Liste, ich möchte per SendMessage mit einem anderen Programm kommunizieren. Daten empfangen klappt schon, nur mit dem senden hapert's noch. Das Problem dabei sind die Daten die übergeben werden sollen, diese in das richtige Format zu bringen. Ich habe dazu einen Ausschnitt der in "Visual Studio .Net 2008 C#" geschrieben ist. Da ich der Programmiersprache aber nicht mächtig bin, hoffe ich hier ist jemand der mir das in Python übersetzen kann. Hier der Code: public static int SendXmlData(XmlDocument doc, IntPtr ownerHandle) { // put the document in output stream MemoryStream stream = new MemoryStream(); doc.Save(stream); int result = -1; IntPtr apHandle = GetPlayerWindow(); // Now move the data into a pointer so we can send // it using WM_COPYDATA: // Get the length of the data: int dataSize = (int)stream.Length; if (dataSize > 0) { byte[] data = new byte[dataSize]; stream.Seek(0, SeekOrigin.Begin); stream.Read(data, 0, dataSize); IntPtr ptrData = Marshal.AllocCoTaskMem(dataSize); Marshal.Copy(data, 0, ptrData, dataSize); COPYDATASTRUCT cds = new COPYDATASTRUCT(); cds.dwData = IntPtr.Zero; cds.cbData = dataSize; cds.lpData = ptrData; result = SendMessage(apHandle, WM_COPYDATA, (int)ownerHandle, ref cds); // Clear up the data: Marshal.FreeCoTaskMem(ptrData); } stream.Close(); return result; }
participants (1)
-
Torsten P.