zoukankan      html  css  js  c++  java
  • SendKeys回车操作类

    /************************************************************
      FileName: SendKey.cs
     
      Description: 模拟键盘指令,发送命令字符     
      Version:   
    ***********************************************************/
    using System;
    using System.Windows.Automation;
    using System.Threading;
    using System.Text;
    using System.Windows.Forms;
    
    namespace 命名空间
    {
        /// <summary>
        /// 操作键盘命令
        /// </summary>
        public class SendKeys
        {
            StringBuilder builder = new StringBuilder();
    
            public string Alt = "%";
            public string ContextMenu = "+{F10}";
            public string Ctrl = "^";
            public string Shift = "+";
            public string Enter = "{Enter}";
            public string Delete = "{Del}";
            public string Save = "^S";
            public string SaveAll = "^+S";
            public string Copy = "^C";
            public string Cut = "^X";
            public string Paste = "^V";
            public string Undo = "^Z";
            public string Redo = "^Y";
            public string Print = "^P";
            public string Help = "{F1}";
            public string New = "^N";
            public string DOWNARROW = "{DOWN}";
            public string UPARROW = "{UP}";
            public string LEFTARROW = "{LEFT}";
            public string RIGHTARROW = "{RIGHT}";
    
    
            public string[] Keys { get; set; }
    
            public void Sendkeys(AutomationElement element, string[] keys)
            {
                this.Keys = keys;
                try
                {
                    //  element.SetFocus();
                }
    
                catch (Exception exception)
                {
                    throw new Exception("Cannot set focus to this element.", exception);
                }
    
                string myKeys = "";
    
                foreach (string str2 in this.Keys)
                {
                    myKeys = myKeys + str2;
                }
    
                Thread.Sleep(200);
    
                if ((this.ContainsUnescapedKey(myKeys, '^') || this.ContainsUnescapedKey(myKeys, '%')) || this.ContainsUnescapedKey(myKeys, '+'))
                {
    
                    myKeys = myKeys.ToLower();
    
                }
    
                System.Windows.Forms.SendKeys.SendWait(myKeys);
    
                Thread.Sleep(0x3e8);
    
            }
    
    
    
            public void Sendkeys(AutomationElement element, string myKeys)
            {
                if (myKeys == string.Empty || myKeys == "") return;
                this.Keys = new string[1];
    
                this.Keys[0] = myKeys;
    
                try
                {
                    //element.SetFocus();
                }
                catch (Exception exception)
                {
                    throw new Exception("Cannot set focus to this element.", exception);
                }
    
                Thread.Sleep(200);
    
                if ((this.ContainsUnescapedKey(myKeys, '^') || this.ContainsUnescapedKey(myKeys, '%')) || this.ContainsUnescapedKey(myKeys, '+'))
                {
                    myKeys = myKeys.ToLower();
                }
    
                System.Windows.Forms.SendKeys.SendWait(myKeys);
    
                Thread.Sleep(0x3e8);
    
            }
    
            /// <summary>
            /// 向活动应用程序发送击键。
            /// </summary>
            /// <param name="keys"></param>
            public void Sendkeys(string keys)
            {
                System.Windows.Forms.SendKeys.SendWait(keys);
    
                Thread.Sleep(0x3e8);
            }
    
    
    
            private bool ContainsUnescapedKey(string keys, char key)
            {
                for (int i = 0; i < keys.Length; i++)
                {
                    if (keys[i] == key)
                    {
                        if ((i == 0) || (i == (keys.Length - 1)))
                        {
                            return true;
                        }
    
                        if ((keys[i - 1] != '{') || (keys[i + 1] != '}'))
                        {
                            return true;
                        }
                    }
                }
    
                return false;
    
            }
    
    
    
            private string KeysToString(string[] keys)
            {
                if (keys != null)
                {
    
                    for (int i = 0; i < keys.Length; i++)
                    {
                        string str = keys[i];
                        if (str == null)
                        {
                            builder.Append(keys[i]);
                        }
    
                        int length = keys.Length - 1;
    
                        switch (str)
                        {
    
                            case "^":
                                builder.Append("Ctrl");
                                IsEquals(i, length, builder);
                                break;
    
                            case "+{F10}":
                                builder.Append("Open Context Menu");
                                IsEquals(i, length, builder);
                                break;
    
                            case "%":
                                builder.Append("Alt");
                                IsEquals(i, length, builder);
                                break;
    
                            case "+":
                                builder.Append("Shift");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^S":
                                builder.Append("Save");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^X":
                                builder.Append("Cut");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^C":
                                builder.Append("Copy");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^V":
                                builder.Append("Paste");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^+S":
                                builder.Append("Save All");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^P":
                                builder.Append("Print");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^Z":
                                builder.Append("Undo");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^Y":
                                builder.Append("Redo");
                                IsEquals(i, length, builder);
                                break;
    
                            case "^N":
                                builder.Append("New");
                                IsEquals(i, length, builder);
                                break;
    
                            default:
                                builder.Append(keys[i]);
                                IsEquals(i, length, builder);
                                break;
    
                        }
    
                    }
    
                }
                return builder.ToString();
    
            }
    
    
    
            void IsEquals(int i, int length, StringBuilder builder)
            {
                if (i < length)
                    builder.Append("+");
            }
    
            #region Public Method
    
    
            public override string ToString()
            {
                return string.Format("Sendkeys to input data or operator with keys = '{0}'", this.KeysToString(Keys));
            }
    
            #endregion
    
        }
    
    }
  • 相关阅读:
    C#listbox使用方法
    poj 3894 System Engineer (二分图最大匹配--匈牙利算法)
    Java实现 蓝桥杯VIP 算法训练 连接字符串
    Java实现 蓝桥杯VIP 算法训练 连接字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 黑白无常
  • 原文地址:https://www.cnblogs.com/Luouy/p/4368135.html
Copyright © 2011-2022 走看看