/// <summary> /// 获取当前已激活的进程信息 /// </summary> /// <returns></returns> public ProgramInfoTemp GetForeProgramInfo() { try { var ForegHandle = WindowsAPI.GetForegroundWindow(); WindowsAPI.GetWindowThreadProcessId(ForegHandle, out int ProgramID); var ProcessObj = Process.GetProcessById(ProgramID); if (ProcessObj == null) { return(null); } var ResultObj = ProgramInfoList.FirstOrDefault(T1 => T1.Name == ProcessObj.ProcessName); if (ResultObj != null) { return(ResultObj); } var FileName = ProcessObj.Modules[0].FileName; var ForeImage = UniversalMethod.GetImageByFileName(FileName); var ForeImgHex = UniversalMethod.ByteArayToHex(ForeImage.ToByteArray()); ResultObj = new ProgramInfoTemp(); ResultObj.Name = ProcessObj.ProcessName; ResultObj.Img = ForeImage; ResultObj.ImgHex = ForeImgHex; ProgramInfoList.Add(ResultObj); return(ResultObj); } catch { return(null); } }
/// <summary> /// 添加一个快捷键 /// </summary> public void AddtShortcutKey(tShortCutKey Param) { Task.Delay(100).ContinueWith(task => { Invoke(new Action(() => { Param.ShortCutKeyImg = UniversalMethod.ByteArayToHex(OfficeTools.Resource.Image.Image.ShortcutKeyDefualtImage.ToImage().ToByteArray()); frmShortcutKey_Edit frm = new frmShortcutKey_Edit(Param); string NewID = ""; if (frm.ShowDialog() == DialogResult.OK) { NewID = new ShortcutKeyManageService().AddShortCutKey(frm.CurrentEntity); if (!string.IsNullOrEmpty(NewID)) { InitKeyList(); } } })); }); }
/// <summary> 确定键单机 /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OK_button_Click(object sender, EventArgs e) { CurrentEntity.ShortCutKeyImg = UniversalMethod.ByteArayToHex(Img_pictureBox.Image.ToByteArray()); CurrentEntity.ShortCutKeyName = Name_textBox.Text; CurrentEntity.TargetProgramImg = UniversalMethod.ByteArayToHex(Target_pictureBox.Image.ToByteArray()); CurrentEntity.TargetProgramName = Program_textBox.Text; if (CurrentEntity.ShortCutKeyType == 2) { CurrentEntity.ShortCutKeyPath = SysShortcutKey_textBox.Text; } else { CurrentEntity.ShortCutKeyPath = Path_textBox.Text; } CurrentEntity.LongPress = LongPress_checkBox.Checked ? 2 : 1; this.DialogResult = DialogResult.OK; this.Close(); }
/// <summary> 以当前选中的快捷键为基础添加一个快捷键 /// /// </summary> /// <param name="IsChidren">[true:添加的快捷键是当前选中的快捷键的子节点;false:添加的选中快捷键的同级快捷键]</param> private string AddtShortcutKey(bool IsChidren = true) { tShortCutKey AddData = new tShortCutKey() { ShortCutKeyName = "新增快捷键", ParentID = "", ShortCutKey = "", ShortCutKeyPath = "", ShortCutKeyType = 0, ShortCutKeyImg = "" }; AddData.ShortCutKeyImg = UniversalMethod.ByteArayToHex(OfficeTools.Resource.Image.Image.ShortcutKeyDefualtImage.ToImage().ToByteArray()); TreeNode CurrentNode = ShortcutKey_otTreeView.SelectedNode; if (CurrentNode != null) { tShortCutKey CurrentEntity = tShortCutKeyDataSource.Where(T1 => T1.ShortCutKeyID == CurrentNode.Name).FirstOrDefault(); if (CurrentEntity != null) { AddData.ParentID = CurrentEntity.ParentID; if (IsChidren) { AddData.ParentID = CurrentEntity.ShortCutKeyID; } } } int KeuNum = GetDefaultKey(AddData.ParentID); if (KeuNum != -1) { AddData.ShortCutKey = KeuNum.ToString(); } string NewID = new ShortcutKeyManageService().AddShortCutKey(AddData); if (!string.IsNullOrEmpty(NewID)) { InitKeyList(); } return(NewID); }
/// <summary> 将文件拖拽到窗口后 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_DragDrop(object sender, DragEventArgs e) { System.Array ArrayTemp = ((System.Array)e.Data.GetData(DataFormats.FileDrop)); if (ArrayTemp == null) { return; //不支持的格式直接返回 } List <string> FilePathList = new List <string>(); for (int i = 0; i < ArrayTemp.Length; i++) { FilePathList.Add(ArrayTemp.GetValue(i).ToString()); } #region 获取父ID,使新添加的记录与当前选中节点处于同一级别 string StrParentId = ""; TreeNode CurrentNode = ShortcutKey_otTreeView.SelectedNode; if (CurrentNode != null) { tShortCutKey CurrentEntity = tShortCutKeyDataSource.Where(T1 => T1.ShortCutKeyID == CurrentNode.Name).FirstOrDefault(); if (CurrentEntity != null) { StrParentId = CurrentEntity.ShortCutKeyID; } } #endregion 获取父ID,使新添加的记录与当前选中节点处于同一级别 foreach (string PathItem in FilePathList) { string StrFileName = Path.GetFileNameWithoutExtension(PathItem);//获取快捷键名称 int KeyNum = GetDefaultKey(StrParentId); string StrKeyNum = ""; if (KeyNum != -1) { StrKeyNum = KeyNum.ToString(); //获取默认键编号 } int FileType = 0; //设置打开类型 byte[] ImageByteArray = UniversalMethod.GetImageByFileName(PathItem).ToByteArray(); //获取文件图标 var ImageHex = UniversalMethod.ByteArayToHex(ImageByteArray); #region 获取快捷方式真实路径 string StrPath = PathItem; string StrExtension = Path.GetExtension(PathItem); if (!string.IsNullOrEmpty(StrExtension))//文件 { if (StrExtension == ".lnk") { WshShell ShellTemp = new WshShell(); IWshShortcut IWshShortcutTemp = (IWshShortcut)ShellTemp.CreateShortcut(PathItem); StrPath = IWshShortcutTemp.TargetPath; StrExtension = Path.GetExtension(StrPath); if (string.IsNullOrEmpty(StrExtension)) { FileType = 1; } } } else//文件夹 { FileType = 1; } Regex RegexTemp = new Regex(@"https{0,1}\:\/\/"); if (RegexTemp.Match(StrPath).Success)//是否是网址 { FileType = 2; } #endregion 获取快捷方式真实路径 #region 实例化AddData tShortCutKey AddData = new tShortCutKey() { ShortCutKeyName = StrFileName, ParentID = StrParentId, ShortCutKey = StrKeyNum, ShortCutKeyPath = StrPath, ShortCutKeyType = (byte)FileType, ShortCutKeyImg = ImageHex }; #endregion 实例化AddData string NewID = new ShortcutKeyManageService().AddShortCutKey(AddData); tShortCutKeyDataSource.Add(AddData); } InitKeyList(); }