Пример #1
0
        unsafe static void SendArgs(uint wnd, string[] args)
        {
            COPYDATASTRUCT data;

            data.dwData = 7;
            string buffer  = string.Join("\0", args);
            IntPtr ptrData = Marshal.AllocCoTaskMem(buffer.Length * sizeof(char));

            char[] chars = buffer.ToCharArray();
            Marshal.Copy(chars, 0, ptrData, chars.Length);
            UIntPtr result;

            data.lpData = (int)ptrData;
            data.cbData = chars.Length * sizeof(char);
            COPYDATASTRUCT *pointer = (&data);

            SendMessageTimeout(wnd, 74, (UIntPtr)0, pointer, SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 5000, out result);
            Marshal.FreeCoTaskMem(ptrData);
        }
Пример #2
0
 unsafe static extern IntPtr SendMessageTimeout(uint hWnd, uint Msg,
                                                UIntPtr wParam, COPYDATASTRUCT *lParam, SendMessageTimeoutFlags fuFlags,
                                                uint uTimeout, out UIntPtr lpdwResult);