Esempio n. 1
0
        private void EnableMessageHandling()
        {
            var changeFilter = new NativeMethods.CHANGEFILTERSTRUCT();

            changeFilter.size = (uint)Marshal.SizeOf(changeFilter);
            changeFilter.info = 0;
            if
            (
                NativeMethods.ChangeWindowMessageFilterEx(
                    new WindowInteropHelper(this).EnsureHandle(),
                    NativeMethods.WM_COPYDATA,
                    NativeMethods.ChangeWindowMessageFilterExAction.Allow,
                    ref changeFilter)
            )
            {
                return;
            }

            var error = Marshal.GetLastWin32Error();

            MessageBox.Show($"Enabling message handling failed with the error: {error}");
        }
Esempio n. 2
0
        private void LoadMainType()
        {
            ShowProcessInfo();

            NativeMethods.CHANGEFILTERSTRUCT changeFilter = new NativeMethods.CHANGEFILTERSTRUCT();
            changeFilter.size = (uint)Marshal.SizeOf(changeFilter);
            changeFilter.info = 0;
            if (!NativeMethods.ChangeWindowMessageFilterEx(
                    this.Handle,
                    NativeMethods.WM_COPYDATA,
                    NativeMethods.ChangeWindowMessageFilterExAction.Allow,
                    ref changeFilter))
            {
                int error = Marshal.GetLastWin32Error();
                MessageBox.Show(String.Format("The error {0} occurred.", error));
            }

            if (!String.IsNullOrEmpty(data))
            {
                SendMessage(data);
            }
            // 윈도우가 보이지 않으면 핸들을 가져오지 못합니다.
            //this.Hide();
        }