/// <summary> 运行当前节点的某个快捷键 /// 运行当前节点的某个快捷键 /// </summary> /// <param name="KeyNum">当前节点的键代码</param> private bool RunShortcutKeyContens(string KeyNum) { vShortCutKey CurrentEntity = CurrentNodetShortCutKey.Where(T1 => T1.ShortCutKey == KeyNum).FirstOrDefault(); if (CurrentEntity == null) { return(false); } if (CurrentEntity.OwningChidrenNode) { ShowKey(CurrentEntity.ShortCutKeyID); return(true); } if (string.IsNullOrEmpty(CurrentEntity.ShortCutKeyPath)) { return(false); } try { ControlButton.IsRunProgram = true; switch (CurrentEntity.ShortCutKeyType) { case 0: //程序 case 1: // List <string> FilePathList = CurrentEntity.ShortCutKeyPath.Split(' ').ToList(); Regex PathRegex = new Regex(@".*?(\.exe)"); //获取程序路径 Regex ParamRegex = new Regex(@"(?<=.*?(\.exe) ).*"); //获取参数 string PathString = CurrentEntity.ShortCutKeyPath; //程序路径文本 string ParamString = ""; //参数文本 Match PathResultMatch = PathRegex.Match(PathString); if (PathResultMatch.Success) //尾缀为.exe才获取参数,没有的话就视为不带参数的文件夹直接打开 { ParamString = ParamRegex.Match(PathString).Value; PathString = PathResultMatch.Value; } UniversalMethod.RunProgram(PathString, ParamString); //启动程序 break; case 2: //系统组合键 UniversalMethod.KeyBoardDown(GetSysShortcutKey(CurrentEntity.ShortCutKeyPath)); break; } } catch { return(false); } return(true); }
/// <summary> 运行当前节点的某个快捷键 /// 运行当前节点的某个快捷键 /// </summary> /// <param name="KeyNum">当前节点的键代码</param> private bool RunShortcutKeyContens(string KeyNum, int LongPressParam) { Runing = true; try { var ForegHandle = WindowsAPI.GetForegroundWindow(); WindowsAPI.GetWindowThreadProcessId(ForegHandle, out int ProgramID); var ProcessObj = Process.GetProcessById(ProgramID); var ProgramInfo = GetForeProgramInfo(); var ProgName = ProgramInfo?.Name ?? ""; var ForeImage = ProgramInfo?.Img; var ForeImgHex = ProgramInfo?.ImgHex ?? ""; vShortCutKey CurrentEntity = GetVShortCutKey(KeyNum, LongPressParam, ProgName); if (CurrentEntity == null) { #region 添加新的快捷键 tShortCutKey AddData = new tShortCutKey() { ShortCutKeyName = "新增快捷键", TargetProgramImg = ForeImgHex, TargetProgramName = ProgName, ParentID = CurrentShortcutKeyID, ShortCutKey = KeyNum, LongPress = LongPressParam, ShortCutKeyPath = "", ShortCutKeyType = 0, ShortCutKeyImg = "" }; ((frmShortcutKeyManage)ParentForm).AddtShortcutKey(AddData); return(false); #endregion 添加新的快捷键 } if (CurrentEntity.OwningChidrenNode) { ShowKey(CurrentEntity.ShortCutKeyID); return(true); } if (string.IsNullOrEmpty(CurrentEntity.ShortCutKeyPath)) { return(false); } try { ControlButton.IsRunProgram = true; switch (CurrentEntity.ShortCutKeyType) { case 0: //程序 case 1: // List <string> FilePathList = CurrentEntity.ShortCutKeyPath.Split(' ').ToList(); Regex PathRegex = new Regex(@".*?(\.exe)"); //获取程序路径 Regex ParamRegex = new Regex(@"(?<=.*?(\.exe) ).*"); //获取参数 string PathString = CurrentEntity.ShortCutKeyPath; //程序路径文本 string ParamString = ""; //参数文本 Match PathResultMatch = PathRegex.Match(PathString); if (PathResultMatch.Success) //尾缀为.exe才获取参数,没有的话就视为不带参数的文件夹直接打开 { ParamString = ParamRegex.Match(PathString).Value; PathString = PathResultMatch.Value; } UniversalMethod.RunProgram(PathString, ParamString); //启动程序 break; case 2: //系统组合键 UniversalMethod.KeyBoardDown(GetSysShortcutKey(CurrentEntity.ShortCutKeyPath)); break; } } catch { return(false); } } catch (Exception EX) { throw EX; } finally { Runing = false; } return(true); }