public void Pause()
        {
            IntPtr flash = this.PlayerHandle;

            if (flash != IntPtr.Zero)
            {
                IntPtr result = IntPtr.Zero;

                // 첫번째 클릭에서 포커스를 잠깐 얻고
                // 두번째 클릭에서 실제로 클릭이 처리되게 하게끔 함.
                // TODO: 아래 방법은 개선되어야 함.
                for (int step = 0; step < 2; ++step)
                {
                    WinApi.SendMessageTimeout(flash, 0x201 /*DOWN*/, new IntPtr(1), new IntPtr(WinApi.MakeParam(500, 1000)), WinApi.SendMessageTimeoutFlags.SMTO_NORMAL, 0, out result);
                    //WinApi.SendMessageTimeout(flash, 0x202/*UP*/, new IntPtr(1), new IntPtr(WinApi.MakeParam(500, 1000)),
                    //    WinApi.SendMessageTimeoutFlags.SMTO_NORMAL, 0, out result);
                }
            }
        }
Ejemplo n.º 2
0
        public void PerformClickWallpaper(int x, int y)
        {
            IntPtr flash = this.PlayerHandle;

            if (flash != IntPtr.Zero)
            {
                IntPtr result = IntPtr.Zero;

                // 첫번째 이벤트에서 포커스를 잠깐 얻고
                WinApi.SendMessageTimeout(flash, 0x202 /*UP*/, new IntPtr(1), new IntPtr(WinApi.MakeParam(y, x)),
                                          WinApi.SendMessageTimeoutFlags.SMTO_NORMAL, 0, out result);

                // 두번째 클릭에서 실제로 클릭이 처리되게 하게끔 함.
                WinApi.SendMessageTimeout(flash, 0x201 /*DOWN*/, new IntPtr(1), new IntPtr(WinApi.MakeParam(y, x)),
                                          WinApi.SendMessageTimeoutFlags.SMTO_NORMAL, 0, out result);
                WinApi.SendMessageTimeout(flash, 0x202 /*UP*/, new IntPtr(1), new IntPtr(WinApi.MakeParam(y, x)),
                                          WinApi.SendMessageTimeoutFlags.SMTO_NORMAL, 0, out result);
            }
        }