Пример #1
0
        private void Hook_KeyUpEvent(CCKeyCode keyCode)
        {
            switch (keyCode)
            {
            case CCKeyCode.VK_LCONTROL:
                ctrlState = false;
                break;

            default:
                break;
            }
        }
Пример #2
0
        private void Hook_KeyDownEvent(CCKeyCode keyCode)
        {
            switch (keyCode)
            {
            case CCKeyCode.VK_LCONTROL:
                ctrlState = true;
                break;

            case CCKeyCode.Numeric1:
                gameData[0].LogLock.EnterWriteLock();
                try {
                    LinkedListNode <LogDetail> node = PopLog(0);
                    node.Value.Content = "数字键 1被按下," + (ctrlState ? "按下了ctrl。" : "没按ctrl。");
                    node.Value.Time    = Environment.TickCount;
                    gameData[0].Log.AddLast(node);
                } finally {
                    gameData[0].LogLock.ExitWriteLock();
                }
                if (ctrlState)
                {
                    if (gameData[0].HitQinKeyLength < gameData[0].HitQinKey.Length)
                    {
                        gameData[0].HitQinKey[gameData[0].HitQinKeyLength++] = 1;
                    }
                    gameData[0].ClientInfoLock.EnterReadLock();
                    try {
                        foreach (UserInfo userInfo in gameData[0].ClientInfo)
                        {
                            server.SendPackage(userInfo.Id, 2, gameData[0].HitQinKey);
                        }
                    } finally {
                        gameData[0].ClientInfoLock.ExitReadLock();
                    }
                }
                break;

            case CCKeyCode.Numeric2:
                gameData[0].LogLock.EnterWriteLock();
                try {
                    LinkedListNode <LogDetail> node = PopLog(0);
                    node.Value.Content = "数字键 2被按下," + (ctrlState ? "按下了ctrl。" : "没按ctrl。");
                    node.Value.Time    = Environment.TickCount;
                    gameData[0].Log.AddLast(node);
                } finally {
                    gameData[0].LogLock.ExitWriteLock();
                }
                if (ctrlState)
                {
                    if (gameData[0].HitQinKeyLength < gameData[0].HitQinKey.Length)
                    {
                        gameData[0].HitQinKey[gameData[0].HitQinKeyLength++] = 2;
                    }
                    gameData[0].ClientInfoLock.EnterReadLock();
                    try {
                        foreach (UserInfo userInfo in gameData[0].ClientInfo)
                        {
                            server.SendPackage(userInfo.Id, 2, gameData[0].HitQinKey);
                        }
                    } finally {
                        gameData[0].ClientInfoLock.ExitReadLock();
                    }
                }
                break;

            case CCKeyCode.Numeric3:
                gameData[0].LogLock.EnterWriteLock();
                try {
                    LinkedListNode <LogDetail> node = PopLog(0);
                    node.Value.Content = "数字键 3被按下," + (ctrlState ? "按下了ctrl。" : "没按ctrl。");
                    node.Value.Time    = Environment.TickCount;
                    gameData[0].Log.AddLast(node);
                } finally {
                    gameData[0].LogLock.ExitWriteLock();
                }
                if (ctrlState)
                {
                    if (gameData[0].HitQinKeyLength < gameData[0].HitQinKey.Length)
                    {
                        gameData[0].HitQinKey[gameData[0].HitQinKeyLength++] = 3;
                    }
                    gameData[0].ClientInfoLock.EnterReadLock();
                    try {
                        foreach (UserInfo userInfo in gameData[0].ClientInfo)
                        {
                            server.SendPackage(userInfo.Id, 2, gameData[0].HitQinKey);
                        }
                    } finally {
                        gameData[0].ClientInfoLock.ExitReadLock();
                    }
                }
                break;

            case CCKeyCode.Numeric4:
                gameData[0].LogLock.EnterWriteLock();
                try {
                    LinkedListNode <LogDetail> node = PopLog(0);
                    node.Value.Content = "数字键 4被按下," + (ctrlState ? "按下了ctrl。" : "没按ctrl。");
                    node.Value.Time    = Environment.TickCount;
                    gameData[0].Log.AddLast(node);
                } finally {
                    gameData[0].LogLock.ExitWriteLock();
                }
                if (ctrlState)
                {
                    if (gameData[0].HitQinKeyLength < gameData[0].HitQinKey.Length)
                    {
                        gameData[0].HitQinKey[gameData[0].HitQinKeyLength++] = 4;
                    }
                    gameData[0].ClientInfoLock.EnterReadLock();
                    try {
                        foreach (UserInfo userInfo in gameData[0].ClientInfo)
                        {
                            server.SendPackage(userInfo.Id, 2, gameData[0].HitQinKey);
                        }
                    } finally {
                        gameData[0].ClientInfoLock.ExitReadLock();
                    }
                }
                break;

            case CCKeyCode.Numeric5:
                gameData[0].LogLock.EnterWriteLock();
                try {
                    LinkedListNode <LogDetail> node = PopLog(0);
                    node.Value.Content = "数字键 5被按下," + (ctrlState ? "按下了ctrl。" : "没按ctrl。");
                    node.Value.Time    = Environment.TickCount;
                    gameData[0].Log.AddLast(node);
                } finally {
                    gameData[0].LogLock.ExitWriteLock();
                }
                if (ctrlState)
                {
                    if (gameData[0].HitQinKeyLength < gameData[0].HitQinKey.Length)
                    {
                        gameData[0].HitQinKey[gameData[0].HitQinKeyLength++] = 5;
                    }
                    gameData[0].ClientInfoLock.EnterReadLock();
                    try {
                        foreach (UserInfo userInfo in gameData[0].ClientInfo)
                        {
                            server.SendPackage(userInfo.Id, 2, gameData[0].HitQinKey);
                        }
                    } finally {
                        gameData[0].ClientInfoLock.ExitReadLock();
                    }
                }
                break;

            case CCKeyCode.Numeric7:
                if (ctrlState)
                {
                    gameData[0].LogLock.EnterWriteLock();
                    try {
                        LinkedListNode <LogDetail> node = PopLog(0);
                        node.Value.Content = "补弦清屏---------------------";
                        node.Value.Time    = Environment.TickCount;
                        gameData[0].Log.AddLast(node);
                    } finally {
                        gameData[0].LogLock.ExitWriteLock();
                    }
                    gameData[0].No1Qin = gameData[0].No2Qin = gameData[0].No3Qin = gameData[0].No4Qin = "";
                    for (int i = 0; i < gameData[0].HitQinKey.Length; i++)
                    {
                        gameData[0].HitQinKey[i] = 0;
                    }
                    gameData[0].HitQinKeyLength = 0;
                    for (int i = 0; i < 12; i++)
                    {
                        gameData[0].QinKey[i] = 0;
                    }
                    gameData[0].ClientInfoLock.EnterReadLock();
                    try {
                        byte[] intByte = new byte[4];
                        foreach (UserInfo userInfo in gameData[0].ClientInfo)
                        {
                            CCSerializeTool.IntToByte(userInfo.Id, intByte, 0);
                            server.SendPackage(userInfo.Id, 3, intByte);
                        }
                    } finally {
                        gameData[0].ClientInfoLock.ExitReadLock();
                    }
                }
                break;

            default:
                break;
            }
        }