public static KeyShortCut parseText( string str )
        {
            KeyShortCut keys = new KeyShortCut();

            if( str != Settings.Default.HKPickerNothing )
                foreach( var key in str.Split( new[] { '+' }, StringSplitOptions.RemoveEmptyEntries ) )
                {
                    switch( key.Trim() )
                    {
                        case "Ctrl":
                            keys.modifier|= global::ModifierKeys.Control;
                            break;
                        case "Shift":
                            keys.modifier|= global::ModifierKeys.Shift;
                            break;
                        case "Alt":
                            keys.modifier|= global::ModifierKeys.Alt;
                            break;
                        default:
                            foreach( var val in Enum.GetValues( typeof( Keys ) ) )
                            {
                                if( key == val.ToString() )
                                {
                                    keys.key= (Keys)val;
                                    goto ok;
                                }

                            }
                            throw new InvalidOperationException( Settings.Default.HKPickerKeyIsUnknown + key );
            ok:
                            break;
                    }
                }

            return keys;
        }
 public static string parseKeys( KeyShortCut e )
 {
     return parseKeys( new KeyEventArgs( e.key | (Keys)e.modifier ) );
 }