diff --git a/Constant/Constants.cs b/Constant/Constants.cs index eae0885..687f739 100644 --- a/Constant/Constants.cs +++ b/Constant/Constants.cs @@ -1,5 +1,7 @@ using System; +using System.Collections; using System.Collections.Generic; +using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -11,7 +13,7 @@ namespace GeekDesk.Constant public static string APP_DIR = AppDomain.CurrentDomain.BaseDirectory.Trim(); // 是否为开发模式 - public static bool DEV = false; + public static bool DEV = true; public static string MY_NAME = DEV ? "GeekDesk-D" : "GeekDesk"; @@ -20,6 +22,17 @@ namespace GeekDesk.Constant /// public static string DATA_FILE_PATH = APP_DIR + "Data"; //app数据文件路径 + public static string LOG_FILE_PATH = APP_DIR + "Log.log"; + + public static string ERROR_FILE_PATH = APP_DIR + "Error.log"; + + //系统图标 + public static Hashtable SYSTEM_ICONS = (Hashtable)ConfigurationManager.GetSection("SystemIcons"); + + #region 常量 + //默认磁盘图标 + public static string DEFAULT_DISK_IMAGE_BASE64 = "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"; + //默认文件夹图标 public static string DEFAULT_DIR_IMAGE_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASISURBVHhe7dvPi9R1HMfx/Qu6RYfqEp1CZ8Yko0MQRNEPgnQ36FJEFyPoF/0DHbx06dSlnVkF6SgEgocOYUEG0cFWpQ476yhbQfTDslJxk+k79S1IP/NSF3f2O+7jBY/TKgvz/j5nXMUZMzMzMzMzMzMzMzMzMzMzu959023dsbSw9YGlbuchyk7v3XbP0t5tt9Yvmd3MW3r//luWu623TvbahytDrtvBQa/9xvJ85776JbWbZf359s7quCcKR2cNqjeaQ/35zgv1y2vTvOqgOy4/MDdG9abzwWC+06lfapu2jf4cXTosN9SZ5W7n9folt2nZ6Ifw6niDy47JelloH6hfepuGLffa7xQPyfpZaL9Xv/zW5K307r27eEDWXfXG9GJ9BmvqqneyV0rHYzL63a3b61NYEzfodT4rHY4J8UetZq/6mF8pHo6J8SnS4JUOxqS19tTnsKatfDAm7Hh9DmvaCsdiAwx6rcfqk1iTVjoWkzfotd+uT2JNWulYTN5yr/VFfRJr0krHYoN0t7Tqs1hTVjwUG6L6OeS1+izWlJUOxYb5xb+JNGyFI7Gxfqp+YN83+h+drK/+wtbH+3u33FmnUF7hQLCpLPfaSycX2u/WSfx/pd8Am1H1yf3d6FOlTuOflX4hbGrd1vN1HgKBou6W2wQC4+0XCASnuu1dAoGxWnsEAmMMeq1DAoExRn/tKxAIBALBmgMZ7Nsx/Pbgc9B4J3udK57fa7WmQEbf1GyatnLg6eKzfDVrCuTcypH625pNx37rHyo+y1ezpkAufL9Yf1uz6dgfpz8uPstXIxDbFBOIWZhAzMIEYhYmELMwgZiFCcQsTCBmYQIxCxOIWZhAzMIEYhYmELMwgZiFrTmQ0/u3D89+8tjw/OdPXbPVr18eXlp6E6bG6le7i8/yOL8efnR4at+24czvR54Y/nl8DrjM6INjpvQFYG548ehOgcA4AoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCC4e3XVJIDBG9QmyKhAY4+Li7HmBwBirx2bPCgTGOTH3g0BgHIFAIBAI6kDOXPEFoDLbn7l0bG53+YuwyS3OPTsz2oVjs3etLs49OM65T5/c9fNHj7z044cPvwrTbvQsj57p0rP+r3NfPnP733GYmZmZmZmZmZmZmZmZmZnZf5uZ+QsdP8v10G4AYgAAAABJRU5ErkJggg=="; @@ -46,5 +59,6 @@ namespace GeekDesk.Constant //默认url图标 public static string URL_ICON_IMG_BASE64 = "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"; + #endregion 常量 } } diff --git a/Control/UserControls/PannelCard/RightCardControl.xaml b/Control/UserControls/PannelCard/RightCardControl.xaml index 807e4ba..e46fb9c 100644 --- a/Control/UserControls/PannelCard/RightCardControl.xaml +++ b/Control/UserControls/PannelCard/RightCardControl.xaml @@ -9,7 +9,6 @@ xmlns:DraggAnimatedPanel="clr-namespace:DraggAnimatedPanel" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" - > @@ -48,11 +47,16 @@ + - + @@ -72,6 +76,7 @@ + @@ -99,7 +104,7 @@ hc:Poptip.Content="{Binding Content}" hc:Poptip.Placement="BottomLeft" Background="#00FFFFFF" - MouseLeftButtonUp="IconClick" + MouseLeftButtonDown="IconClick" MouseEnter="StackPanel_MouseEnter" MouseLeave="StackPanel_MouseLeave" > @@ -118,7 +123,7 @@ - + diff --git a/Control/UserControls/PannelCard/RightCardControl.xaml.cs b/Control/UserControls/PannelCard/RightCardControl.xaml.cs index f86cebe..8f18ff7 100644 --- a/Control/UserControls/PannelCard/RightCardControl.xaml.cs +++ b/Control/UserControls/PannelCard/RightCardControl.xaml.cs @@ -1,6 +1,7 @@ using DraggAnimatedPanelExample; using GeekDesk.Constant; using GeekDesk.Control.Other; +using GeekDesk.Control.Windows; using GeekDesk.Util; using GeekDesk.ViewModel; using HandyControl.Controls; @@ -66,15 +67,31 @@ namespace GeekDesk.Control.UserControls.PannelCard /// private void IconClick(object sender, MouseButtonEventArgs e) { - IconInfo icon = (IconInfo)((SimpleStackPanel)sender).Tag; - if (icon.AdminStartUp) + if (appData.AppConfig.DoubleOpen && e.ClickCount >= 2) { - StartIconApp(icon, IconStartType.ADMIN_STARTUP); + IconInfo icon = (IconInfo)((SimpleStackPanel)sender).Tag; + if (icon.AdminStartUp) + { + StartIconApp(icon, IconStartType.ADMIN_STARTUP); + } + else + { + StartIconApp(icon, IconStartType.DEFAULT_STARTUP); + } } - else + else if (!appData.AppConfig.DoubleOpen && e.ClickCount == 1) { - StartIconApp(icon, IconStartType.DEFAULT_STARTUP); + IconInfo icon = (IconInfo)((SimpleStackPanel)sender).Tag; + if (icon.AdminStartUp) + { + StartIconApp(icon, IconStartType.ADMIN_STARTUP); + } + else + { + StartIconApp(icon, IconStartType.DEFAULT_STARTUP); + } } + } /// @@ -103,30 +120,88 @@ namespace GeekDesk.Control.UserControls.PannelCard { try { - Process p = new Process(); - p.StartInfo.FileName = icon.Path; - if (icon.IconType == IconType.OTHER) + using (Process p = new Process()) { - if (!File.Exists(icon.Path) && !Directory.Exists(icon.Path)) + p.StartInfo.UseShellExecute = true; + + string startArg = icon.StartArg; + + if (startArg != null && Constants.SYSTEM_ICONS != null + && Constants.SYSTEM_ICONS.ContainsKey(startArg)) { - HandyControl.Controls.Growl.WarningGlobal("程序启动失败(文件路径不存在或已删除)!"); - return; + StartSystemApp(startArg, type); } - p.StartInfo.WorkingDirectory = icon.Path.Substring(0, icon.Path.LastIndexOf("\\")); - switch (type) + else { - case IconStartType.ADMIN_STARTUP: - p.StartInfo.Arguments = "1";//启动参数 - p.StartInfo.Verb = "runas"; - p.StartInfo.CreateNoWindow = false; //设置显示窗口 - p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动进程 - p.StartInfo.ErrorDialog = false; + p.StartInfo.FileName = icon.Path; + //p.StartInfo.CreateNoWindow = false; //设置显示窗口 + //p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动进程 + //p.StartInfo.ErrorDialog = false; + if (!StringUtil.IsEmpty(startArg)) + { + p.StartInfo.Arguments = startArg; + } + if (icon.IconType == IconType.OTHER) + { + if (!File.Exists(icon.Path) && !Directory.Exists(icon.Path)) + { + HandyControl.Controls.Growl.WarningGlobal("程序启动失败(文件路径不存在或已删除)!"); + return; + } + p.StartInfo.WorkingDirectory = icon.Path.Substring(0, icon.Path.LastIndexOf("\\")); + switch (type) + { + case IconStartType.ADMIN_STARTUP: + //p.StartInfo.Arguments = "1";//启动参数 + p.StartInfo.Verb = "runas"; + if (appData.AppConfig.AppHideType == AppHideType.START_EXE) + { + //如果开启了贴边隐藏 则窗体不贴边才隐藏窗口 + if (appData.AppConfig.MarginHide) + { + if (!MarginHide.IS_HIDE) + { + MainWindow.HideApp(); + } + } + else + { + MainWindow.HideApp(); + } + + } + break;// c#好像不能case穿透 + case IconStartType.DEFAULT_STARTUP: + if (appData.AppConfig.AppHideType == AppHideType.START_EXE) + { + //如果开启了贴边隐藏 则窗体不贴边才隐藏窗口 + if (appData.AppConfig.MarginHide) + { + if (!MarginHide.IS_HIDE) + { + MainWindow.HideApp(); + } + } + else + { + MainWindow.HideApp(); + } + } + break; + case IconStartType.SHOW_IN_EXPLORE: + p.StartInfo.FileName = "Explorer.exe"; + p.StartInfo.Arguments = "/e,/select," + icon.Path; + break; + } + } + else + { if (appData.AppConfig.AppHideType == AppHideType.START_EXE) { //如果开启了贴边隐藏 则窗体不贴边才隐藏窗口 if (appData.AppConfig.MarginHide) { - if (!MainWindow.hide.IsMargin()) + if (!MarginHide.IS_HIDE) { MainWindow.HideApp(); } @@ -135,43 +210,100 @@ namespace GeekDesk.Control.UserControls.PannelCard { MainWindow.HideApp(); } - } - break;// c#好像不能case穿透 - case IconStartType.DEFAULT_STARTUP: - if (appData.AppConfig.AppHideType == AppHideType.START_EXE) - { - //如果开启了贴边隐藏 则窗体不贴边才隐藏窗口 - if (appData.AppConfig.MarginHide) - { - if (!MainWindow.hide.IsMargin()) - { - MainWindow.HideApp(); - } - } else - { - MainWindow.HideApp(); - } - } - break; - case IconStartType.SHOW_IN_EXPLORE: - p.StartInfo.FileName = "Explorer.exe"; - p.StartInfo.Arguments = "/e,/select," + icon.Path; - break; + } + icon.Count++; + p.Start(); } } - p.Start(); - icon.Count++; } - catch (Exception) + catch (Exception e) { HandyControl.Controls.Growl.WarningGlobal("程序启动失败(不支持的启动方式)!"); + LogUtil.WriteErrorLog(e, "程序启动失败:path=" + icon.Path + ",type=" + type); } } + private void StartSystemApp(string startArg, IconStartType type) + { + if (type == IconStartType.SHOW_IN_EXPLORE) + { + Growl.WarningGlobal("系统项目不支持打开文件位置操作!"); + return; + } + switch (startArg) + { + case "Calculator": + Process.Start("calc.exe"); + break; + case "Computer": + Process.Start("explorer.exe"); + break; + case "GroupPolicy": + Process.Start("gpedit.msc"); + break; + case "Notepad": + Process.Start("notepad"); + break; + case "Network": + Process.Start("ncpa.cpl"); + break; + case "RecycleBin": + Process.Start("shell:RecycleBinFolder"); + break; + case "Registry": + Process.Start("regedit.exe"); + break; + case "Mstsc": + if (type == IconStartType.ADMIN_STARTUP) + { + Process.Start("mstsc", "-admin"); + } + else + { + Process.Start("mstsc"); + } + break; + case "Control": + Process.Start("Control"); + break; + case "CMD": + if (type == IconStartType.ADMIN_STARTUP) + { + using (Process process = new Process()) + { + process.StartInfo.FileName = "cmd.exe"; + process.StartInfo.Verb = "runas"; + process.Start(); + } + } + else + { + Process.Start("cmd"); + } + break; + } + //如果开启了贴边隐藏 则窗体不贴边才隐藏窗口 + if (appData.AppConfig.MarginHide) + { + if (!MarginHide.IS_HIDE) + { + MainWindow.HideApp(); + } + } + else + { + MainWindow.HideApp(); + } + } + /// + /// 拖动添加项目 + /// + /// + /// private void Wrap_Drop(object sender, DragEventArgs e) { Array dropObject = (System.Array)e.Data.GetData(DataFormats.FileDrop); @@ -179,35 +311,7 @@ namespace GeekDesk.Control.UserControls.PannelCard foreach (object obj in dropObject) { string path = (string)obj; - - //string base64 = ImageUtil.FileImageToBase64(path, ImageFormat.Png); - string ext = ""; - if (!ImageUtil.IsSystemItem(path)) - { - ext = System.IO.Path.GetExtension(path).ToLower(); - } - - if (".lnk".Equals(ext)) - { - string targetPath = FileUtil.GetTargetPathByLnk(path); - if (targetPath!=null) - { - path = targetPath; - } - } - - BitmapImage bi = ImageUtil.GetBitmapIconByPath(path); - IconInfo iconInfo = new IconInfo - { - Path = path, - BitmapImage = bi - }; - iconInfo.DefaultImage = iconInfo.ImageByteArr; - iconInfo.Name = System.IO.Path.GetFileNameWithoutExtension(path); - if (StringUtil.IsEmpty(iconInfo.Name)) - { - iconInfo.Name = path; - } + IconInfo iconInfo = CommonCode.GetIconInfoByPath(path); MainWindow.appData.MenuList[appData.AppConfig.SelectedMenuIndex].IconList.Add(iconInfo); CommonCode.SaveAppData(MainWindow.appData); } @@ -279,7 +383,7 @@ namespace GeekDesk.Control.UserControls.PannelCard Panel sp = sender as Panel; - DependencyObject dos = sp.Parent; + DependencyObject dos = sp.Parent; Image img = sp.Children[0] as Image; @@ -288,16 +392,16 @@ namespace GeekDesk.Control.UserControls.PannelCard //动画定义 Storyboard myStoryboard = new Storyboard(); - - DoubleAnimation heightAnimation = new DoubleAnimation + + DoubleAnimation heightAnimation = new DoubleAnimation { From = afterHeight, To = height, Duration = new Duration(TimeSpan.FromMilliseconds(milliseconds)) }; - DoubleAnimation widthAnimation = new DoubleAnimation + DoubleAnimation widthAnimation = new DoubleAnimation { From = afterWidth, To = width, @@ -333,7 +437,8 @@ namespace GeekDesk.Control.UserControls.PannelCard ThreadStart ts = new ThreadStart(crs.Remove); System.Threading.Thread t = new System.Threading.Thread(ts); t.Start(); - } else + } + else { img.BeginAnimation(WidthProperty, null); img.BeginAnimation(HeightProperty, null); @@ -396,10 +501,25 @@ namespace GeekDesk.Control.UserControls.PannelCard sb2.Remove(); } + /// + /// 添加URL项目 + /// + /// + /// private void AddUrlIcon(object sender, RoutedEventArgs e) { IconInfoUrlDialog urlDialog = new IconInfoUrlDialog(); urlDialog.dialog = HandyControl.Controls.Dialog.Show(urlDialog, "IconInfoDialog"); } + + /// + /// 添加系统项目 + /// + /// + /// + private void AddSystemIcon(object sender, RoutedEventArgs e) + { + SystemItemWindow.Show(); + } } } diff --git a/Control/UserControls/SystemItem/SystemItem.xaml b/Control/UserControls/SystemItem/SystemItem.xaml new file mode 100644 index 0000000..32a93ff --- /dev/null +++ b/Control/UserControls/SystemItem/SystemItem.xaml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Control/UserControls/SystemItem/SystemItem.xaml.cs b/Control/UserControls/SystemItem/SystemItem.xaml.cs new file mode 100644 index 0000000..0d58ac9 --- /dev/null +++ b/Control/UserControls/SystemItem/SystemItem.xaml.cs @@ -0,0 +1,59 @@ +using GeekDesk.Constant; +using GeekDesk.Util; +using GeekDesk.ViewModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace GeekDesk.Control.UserControls.SystemItem +{ + /// + /// IconPannel.xaml 的交互逻辑 + /// + public partial class SystemItem : UserControl + { + public SystemItem() + { + InitializeComponent(); + } + private void Icon_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + IconInfo thisInfo = (sender as StackPanel).Tag as IconInfo; + + MenuInfo menuInfo = MainWindow.appData.MenuList[MainWindow.appData.AppConfig.SelectedMenuIndex]; + + string startArg = thisInfo.StartArg; + IconInfo iconInfo; + if (Constants.SYSTEM_ICONS.ContainsKey(startArg)) + { + //系统项 + iconInfo = new IconInfo + { + Name_NoWrite = thisInfo.Name_NoWrite, + Path_NoWrite = thisInfo.Path_NoWrite, + StartArg_NoWrite = thisInfo.StartArg_NoWrite, + BitmapImage_NoWrite = thisInfo.BitmapImage_NoWrite + }; + iconInfo.Content_NoWrite = iconInfo.Name_NoWrite + + "\n使用次数:" + iconInfo.Count; + } else + { + //startupMenu or Store + iconInfo = CommonCode.GetIconInfoByPath(thisInfo.LnkPath_NoWrite); + } + menuInfo.IconList.Add(iconInfo); + CommonCode.SaveAppData(MainWindow.appData); + } + } +} diff --git a/Control/Windows/SystemItemWindow.xaml b/Control/Windows/SystemItemWindow.xaml new file mode 100644 index 0000000..6442c4b --- /dev/null +++ b/Control/Windows/SystemItemWindow.xaml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +