示例#1
0
        /// <summary>
        /// this function is for single funciton key(without "up" code).
        /// But, while write to kb9, we have to apppend the "up" code.
        /// we do this work at here.
        /// return:
        ///     "": can not fix it.
        ///     Others string: corrrected string.
        ///
        /// </summary>
        /// <param name="strText"></param>
        /// <returns></returns>
        static public string auto_fix_key_content(string strText)
        {
            string strKeys = strText;

            if (strKeys == string.Empty)
            {
                return("");
            }
            KB9Validation kb9 = new KB9Validation();

            kb9.AllowSingleFunctionKey = false;

            KB9Validation.ERR_VALIDATION err = kb9.ValidateKB9Keycodes(strKeys);
            if (err == KB9Validation.ERR_VALIDATION.OK)
            {
                return(strKeys);
            }



            int nloop = 0;

            while (err != ERR_VALIDATION.OK)
            {
                if (err == KB9Validation.ERR_VALIDATION.Less_AltUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_RAltUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_CtrlUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_RCtrlUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_RShiftUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_ShiftUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_WinUp ||
                    err == KB9Validation.ERR_VALIDATION.Less_RWinUp)
                {
                    string strAppend = AppendErrKey(err);

                    strKeys += (strAppend);
                }
                else
                { //less down, remove last up
                    string strRemove = RemoveErrKey(err);
                    int    nindex    = strKeys.LastIndexOf(strRemove);
                    strKeys = strKeys.Remove(nindex, strRemove.Length);

                    //ctrlText.RemoveLastKeyCode(strRemove);
                }
                //strKeys = ctrlText.Text;
                err = kb9.ValidateKB9Keycodes(strKeys);
                nloop++;
                if (nloop > 256)
                {
                    return("");
                }
            }

            return(strKeys);
        }
示例#2
0
        static private string AppendErrKey(KB9Validation.ERR_VALIDATION err)
        {
            switch (err)
            {
            case KB9Validation.ERR_VALIDATION.Less_ShiftDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.ShiftKey));

            case KB9Validation.ERR_VALIDATION.Less_ShiftUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.ShiftKey));

            case KB9Validation.ERR_VALIDATION.Less_RShiftDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.RShiftKey));

            case KB9Validation.ERR_VALIDATION.Less_RShiftUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RShiftKey));

            case KB9Validation.ERR_VALIDATION.Less_CtrlDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.ControlKey));

            case KB9Validation.ERR_VALIDATION.Less_CtrlUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.ControlKey));

            case KB9Validation.ERR_VALIDATION.Less_RCtrlDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.RControlKey));

            case KB9Validation.ERR_VALIDATION.Less_RCtrlUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RControlKey));

            case KB9Validation.ERR_VALIDATION.Less_AltDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.Menu));

            case KB9Validation.ERR_VALIDATION.Less_AltUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.Menu));

            case KB9Validation.ERR_VALIDATION.Less_RAltDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.RMenu));

            case KB9Validation.ERR_VALIDATION.Less_RAltUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RMenu));

            case KB9Validation.ERR_VALIDATION.Less_WinDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.LWin));

            case KB9Validation.ERR_VALIDATION.Less_WinUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.LWin));

            case KB9Validation.ERR_VALIDATION.Less_RWinDown:
                return(KB9KeyDefinition.KeyDisplayName(Keys.RWin));

            case KB9Validation.ERR_VALIDATION.Less_RWinUp:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RWin));
            }
            return("");
        }
示例#3
0
        static private string ValidateErrMsg(KB9Validation.ERR_VALIDATION err)
        {
            switch (err)
            {
            case KB9Validation.ERR_VALIDATION.Less_ShiftDown:
                return("[Shift] down less than up.");

            case KB9Validation.ERR_VALIDATION.Less_ShiftUp:
                return("[Shift] up less than down.");

            case KB9Validation.ERR_VALIDATION.Less_RShiftDown:
                return("[RightShift] down less than up.");

            case KB9Validation.ERR_VALIDATION.Less_RShiftUp:
                return("[RightShift] up less than down.");

            case KB9Validation.ERR_VALIDATION.Less_CtrlDown:
                return("[Control] down less than up.");

            case KB9Validation.ERR_VALIDATION.Less_CtrlUp:
                return("[Control] up less than down.");

            case KB9Validation.ERR_VALIDATION.Less_RCtrlDown:
                return("[RightControl] down less than up.");

            case KB9Validation.ERR_VALIDATION.Less_RCtrlUp:
                return("[RightControl] up less than down.");

            case KB9Validation.ERR_VALIDATION.Less_AltDown:
                return("[Alt] down less than up.");

            case KB9Validation.ERR_VALIDATION.Less_AltUp:
                return("[Alt] up less than down.");

            case KB9Validation.ERR_VALIDATION.Less_RAltDown:
                return("[RightAlt] down less than up.");

            case KB9Validation.ERR_VALIDATION.Less_RAltUp:
                return("[RightAlt] up less than down.");

            case KB9Validation.ERR_VALIDATION.DownUp_Messed:
                return("Key Up event happened before key down event.");

            case KB9Validation.ERR_VALIDATION.Single_Function_With_Up:
                return("Single function key just keep down event, remove up key.");

            case ERR_VALIDATION.Repeat_Can_Not_Follow_Combination_Macro_Pause:
                return("Repeat function cannot be followed by Key Combination, Macro or Pause.");

            case ERR_VALIDATION.Repeat_Must_Follow_Key:
                return("Repeat function must be followed by a key.");
            }
            return("");
        }
示例#4
0
        static public string ValidateKeyTextBoxMsg(Form frmCaller, KB9TextBox ctrlText)
        {
            if (ctrlText == null)
            {
                return("");
            }
            string strKeys = ctrlText.Text;// GetInputedKeyCodes();

            if (strKeys == string.Empty)
            {
                return("");
            }
            KB9Validation kb9 = new KB9Validation();

            KB9Validation.ERR_VALIDATION err = kb9.ValidateKB9Keycodes(strKeys);
            if (err == KB9Validation.ERR_VALIDATION.OK)
            {
                return("");
            }

            string err_msg = ValidateErrMsg(err);

            return(err_msg);

            //if (err == KB9Validation.ERR_VALIDATION.Less_AltUp ||
            //    err == KB9Validation.ERR_VALIDATION.Less_RAltUp ||
            //    err == KB9Validation.ERR_VALIDATION.Less_CtrlUp ||
            //    err == KB9Validation.ERR_VALIDATION.Less_RCtrlUp ||
            //    err == KB9Validation.ERR_VALIDATION.Less_RShiftUp ||
            //    err == KB9Validation.ERR_VALIDATION.Less_ShiftUp)
            //{

            //    return err_msg;
            //    //err_msg += "\n\rDo you want utility append this key to end?";

            //    //DialogResult result = MessageBox.Show(frmCaller, err_msg, "Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
            //    //if (result == DialogResult.Yes)
            //    //{
            //    //    string strAppend = AppendErrKey(err);
            //    //    ctrlText.AddKeyCode(strAppend, false);
            //    //}
            //}
            //else
            //{
            //    err_msg += "\n\rPlease fixed it manually.";
            //    MessageBox.Show(frmCaller, err_msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //}

            //return false;
        }
示例#5
0
        static private string RemoveErrKey(KB9Validation.ERR_VALIDATION err)
        {
            switch (err)
            {
            case KB9Validation.ERR_VALIDATION.Less_ShiftDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.ShiftKey));

            //case KB9Validation.ERR_VALIDATION.Less_ShiftUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.ShiftKey);
            case KB9Validation.ERR_VALIDATION.Less_RShiftDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RShiftKey));

            //case KB9Validation.ERR_VALIDATION.Less_RShiftUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.RShiftKey);
            case KB9Validation.ERR_VALIDATION.Less_CtrlDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.ControlKey));

            //case KB9Validation.ERR_VALIDATION.Less_CtrlUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.ControlKey);
            case KB9Validation.ERR_VALIDATION.Less_RCtrlDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RControlKey));

            //case KB9Validation.ERR_VALIDATION.Less_RCtrlUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.RControlKey);
            case KB9Validation.ERR_VALIDATION.Less_AltDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.Menu));

            //case KB9Validation.ERR_VALIDATION.Less_AltUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.Menu);
            case KB9Validation.ERR_VALIDATION.Less_RAltDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RMenu));

            //case KB9Validation.ERR_VALIDATION.Less_RAltUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.RMenu);

            case KB9Validation.ERR_VALIDATION.Less_WinDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.LWin));

            //case KB9Validation.ERR_VALIDATION.Less_WinUp:
            //    return KB9KeyDefinition.KeyUpDisplayName(Keys.LWin);
            case KB9Validation.ERR_VALIDATION.Less_RWinDown:
                return(KB9KeyDefinition.KeyUpDisplayName(Keys.RWin));
                //case KB9Validation.ERR_VALIDATION.Less_RWinUp:
                //    return KB9KeyDefinition.KeyUpDisplayName(Keys.RWin);
                //case KB9Validation.ERR_VALIDATION.Single_Function_With_Up:
            }
            return("");
        }
示例#6
0
        static public bool ValidateKeyTextBox(Form frmCaller, KB9TextBox ctrlText)
        {
            string strKeys = ctrlText.Text;// GetInputedKeyCodes();

            if (strKeys == string.Empty)
            {
                return(true);
            }
            KB9Validation kb9 = new KB9Validation();

            KB9Validation.ERR_VALIDATION err = kb9.ValidateKB9Keycodes(strKeys);
            if (err == KB9Validation.ERR_VALIDATION.OK)
            {
                return(true);
            }

            string err_msg = ValidateErrMsg(err);

            if (err == KB9Validation.ERR_VALIDATION.Less_AltUp ||
                err == KB9Validation.ERR_VALIDATION.Less_RAltUp ||
                err == KB9Validation.ERR_VALIDATION.Less_CtrlUp ||
                err == KB9Validation.ERR_VALIDATION.Less_RCtrlUp ||
                err == KB9Validation.ERR_VALIDATION.Less_RShiftUp ||
                err == KB9Validation.ERR_VALIDATION.Less_ShiftUp ||
                err == KB9Validation.ERR_VALIDATION.Less_WinUp ||
                err == KB9Validation.ERR_VALIDATION.Less_RWinUp)
            {
                err_msg += "\n\rDo you want utility append this key to end?";

                DialogResult result = MessageBox.Show(frmCaller, err_msg, "Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                if (result == DialogResult.Yes)
                {
                    string strAppend = AppendErrKey(err);
                    ctrlText.AddKeyCode(strAppend, false);
                }
            }
            else
            {
                err_msg += "\n\rPlease fixed it manually.";
                MessageBox.Show(frmCaller, err_msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return(false);
        }
示例#7
0
        /************************************************************************/

        /*
         * return: 0: ok
         *          1: messagebox shown, and correct
         *          2: messagebox shown, and manually correct them
         *          3: cancel edit, undo
         */
        /************************************************************************/
        static public int ValidateKeyTextBox2(Form frmCaller, KB9TextBox ctrlText)
        {
            string strKeys = ctrlText.Text;// GetInputedKeyCodes();

            if (strKeys == string.Empty)
            {
                return(0);
            }
            KB9Validation kb9 = new KB9Validation();

            KB9Validation.ERR_VALIDATION err = kb9.ValidateKB9Keycodes(strKeys);
            if (err == KB9Validation.ERR_VALIDATION.OK)
            {
                return(0);
            }
            string err_msg = ValidateErrMsg(err);
            string strlog  = "Key contents validation error";

            strlog += KB9Logger.LOG_LF;
            strlog += KB9Logger.LOG_TAB;
            strlog += ("Key contents:" + strKeys);
            strlog += KB9Logger.LOG_LF;
            strlog += KB9Logger.LOG_TAB;
            strlog += err_msg;

            KB9Logger.Err(strlog);



            if (err == KB9Validation.ERR_VALIDATION.Single_Function_With_Up)
            { //if it is single function key, just keep down key.
                ctrlText.RemoveLastKey();
                ctrlText.Refresh();
                return(0);
            }

            if (err == ERR_VALIDATION.Repeat_Must_Follow_Key ||
                err == ERR_VALIDATION.Repeat_Can_Not_Follow_Combination_Macro_Pause)
            {
                MessageBox.Show(frmCaller,
                                err_msg,
                                "Warning",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return(2);
            }

            if (err == ERR_VALIDATION.Less_AltDown ||
                err == ERR_VALIDATION.Less_CtrlDown ||
                err == ERR_VALIDATION.Less_RAltDown ||
                err == ERR_VALIDATION.Less_RCtrlDown ||
                err == ERR_VALIDATION.Less_RShiftDown ||
                err == ERR_VALIDATION.Less_RWinDown ||
                err == ERR_VALIDATION.Less_ShiftDown ||
                err == ERR_VALIDATION.Less_WinDown)
            {
                DialogResult r = frmKeyCodeLessDown.ConfirmCancel();// MessageBox.Show(frmCaller,
                if (r == DialogResult.Yes)
                {
                    return(3);
                }
                else
                {
                    return(2);
                }
            }

            //DialogResult result = MessageBox.Show(frmCaller,
            //                                      "Key release codes does not match with corresponding key press codes.  Automatic fix by inserting key release codes at the end?",
            //                                      "Warning",
            //                                      MessageBoxButtons.YesNo,
            //                                      MessageBoxIcon.Warning);
            DialogResult result = frmKeyCodeError.ConfirmError();// MessageBox.Show(frmCaller,

            if (result == DialogResult.Yes)
            {
                int nloop = 0;
                while (err != ERR_VALIDATION.OK)
                {
                    if (err == KB9Validation.ERR_VALIDATION.Less_AltUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_RAltUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_CtrlUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_RCtrlUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_RShiftUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_ShiftUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_WinUp ||
                        err == KB9Validation.ERR_VALIDATION.Less_RWinUp)
                    {
                        string strAppend = AppendErrKey(err);
                        //ctrlText.AddKeyCode(strAppend, false);
                        ctrlText.AppendKeyCode(strAppend);
                    }
                    //else if (err == KB9Validation.ERR_VALIDATION.Single_Function_With_Up)
                    //{
                    //    ctrlText.RemoveLastKey();
                    //}
                    else
                    { //less down, remove last up
                        string strRemove = RemoveErrKey(err);
                        ctrlText.RemoveLastKeyCode(strRemove);
                    }
                    strKeys = ctrlText.Text;
                    err     = kb9.ValidateKB9Keycodes(strKeys);
                    nloop++;
                    if (nloop > 256)
                    {
                        MessageBox.Show(frmCaller, "The automatic fix failed, please correct it manually.",
                                        "Warning",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Warning);
                        ctrlText.Refresh();
                        //log
                        strlog  = "Can not fixed automaticly.";
                        strlog += KB9Logger.LOG_LF;
                        strlog += KB9Logger.LOG_TAB;
                        strlog += "Result:";
                        strlog += ctrlText.Text;
                        KB9Logger.Err(strlog);
                        return(2);
                    }
                }
                ctrlText.Refresh();
                //log
                strKeys = ctrlText.Text;
                strlog  = "Auto fixed result:";
                strlog += KB9Logger.LOG_LF;
                strlog += KB9Logger.LOG_TAB;
                strlog += strKeys;
                KB9Logger.Log(strlog);
            }
            else
            {
                return(2);
            }



            return(1);
        }