Пример #1
0
        void IWidget.StaticInitializeWidget(Dawsome dawsome)
        {
            if (NativeMethods.RegisterGlobalShellHook(dawsome.Handle))
            {
                globalShellHookMessage = NativeMethods.RegisterWindowMessage("GLOBAL_SHELL_HOOK");
                if (SystemAndProcessInformation.isAtLeastVista && SystemAndProcessInformation.isRunningElevated)
                {
                    if (SystemAndProcessInformation.isAtLeast7)
                    {
                        NativeMethods.ChangeWindowMessageFilterEx(dawsome.Handle, globalShellHookMessage, NativeMethods.MSGFLTEx.MSGFLT_ALLOW, IntPtr.Zero);
                    }
                    else
                    {
                        NativeMethods.ChangeWindowMessageFilter(globalShellHookMessage, NativeMethods.MSGFLT.MSGFLT_ADD);
                    }
                }

                dawsome.RegisterMessage((int) globalShellHookMessage, OnGlobalShellHookMessage);
            }
        }