diff --git a/Plugins/Wox.Plugin.Sys/Images/recyclebin.png b/Plugins/Wox.Plugin.Sys/Images/recyclebin.png new file mode 100644 index 0000000000..ba1f2703c7 Binary files /dev/null and b/Plugins/Wox.Plugin.Sys/Images/recyclebin.png differ diff --git a/Plugins/Wox.Plugin.Sys/Images/restartcomp.png b/Plugins/Wox.Plugin.Sys/Images/restartcomp.png new file mode 100644 index 0000000000..fdbee813d9 Binary files /dev/null and b/Plugins/Wox.Plugin.Sys/Images/restartcomp.png differ diff --git a/Plugins/Wox.Plugin.Sys/Languages/en.xaml b/Plugins/Wox.Plugin.Sys/Languages/en.xaml index be6dbbbd72..65b50edcb8 100644 --- a/Plugins/Wox.Plugin.Sys/Languages/en.xaml +++ b/Plugins/Wox.Plugin.Sys/Languages/en.xaml @@ -6,12 +6,14 @@ Description Shutdown Computer + Restart Computer Log off Lock this computer Close Wox Restart Wox Tweak this app Put computer to sleep + Empty recycle bin System Commands Provide System related commands. e.g. shutdown,lock,setting etc. diff --git a/Plugins/Wox.Plugin.Sys/Languages/zh-cn.xaml b/Plugins/Wox.Plugin.Sys/Languages/zh-cn.xaml index 099003ebb1..e18fc8a832 100644 --- a/Plugins/Wox.Plugin.Sys/Languages/zh-cn.xaml +++ b/Plugins/Wox.Plugin.Sys/Languages/zh-cn.xaml @@ -6,12 +6,14 @@ 描述 关闭电脑 + Restart Computer 注销 锁定这台电脑 退出Wox 重启Wox 设置 休眠这台电脑 + Empty recycle bin 系统命令 系统系统相关的命令。例如,关机,锁定,设置等 diff --git a/Plugins/Wox.Plugin.Sys/Languages/zh-tw.xaml b/Plugins/Wox.Plugin.Sys/Languages/zh-tw.xaml index 0fa2694af7..9772142b29 100644 --- a/Plugins/Wox.Plugin.Sys/Languages/zh-tw.xaml +++ b/Plugins/Wox.Plugin.Sys/Languages/zh-tw.xaml @@ -6,12 +6,14 @@ 描述 關閉電腦 + Restart Computer 註銷 鎖定這臺電腦 退出Wox 重啟Wox 設置 休眠这台电脑 + Empty recycle bin 系統命令 系統系統相關的命令。例如,關機,鎖定,設置等 diff --git a/Plugins/Wox.Plugin.Sys/Sys.cs b/Plugins/Wox.Plugin.Sys/Sys.cs index d3a0db1da6..20426e0b5c 100644 --- a/Plugins/Wox.Plugin.Sys/Sys.cs +++ b/Plugins/Wox.Plugin.Sys/Sys.cs @@ -27,6 +27,10 @@ namespace Wox.Plugin.Sys [DllImport("user32")] private static extern void LockWorkStation(); + // https://msdn.microsoft.com/en-us/library/windows/desktop/bb762160(v=vs.85).aspx + [DllImport("Shell32.dll", CharSet = CharSet.Unicode)] + private static extern uint SHEmptyRecycleBin(System.IntPtr hwnd, string pszRootPath, uint dwFlags); + #endregion public Control CreateSettingPanel() @@ -73,6 +77,19 @@ namespace Wox.Plugin.Sys } }, new Result + { + Title = "Restart", + SubTitle = context.API.GetTranslation("wox_plugin_sys_restart_computer"), + IcoPath = "Images\\restartcomp.png", + Action = (c) => + { + if (MessageBox.Show("Are you sure you want to restart the computer?","Restart Computer?",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) == DialogResult.Yes) { + Process.Start("shutdown", "/r /t 0"); + } + return true; + } + }, + new Result { Title = "Log off", SubTitle = context.API.GetTranslation("wox_plugin_sys_log_off"), @@ -96,6 +113,26 @@ namespace Wox.Plugin.Sys SubTitle = context.API.GetTranslation("wox_plugin_sys_sleep"), IcoPath = "Images\\sleep.png", Action = (c) => Application.SetSuspendState(PowerState.Suspend, false, false) + }, + new Result + { + Title = "Empty Recycle Bin", + SubTitle = context.API.GetTranslation("wox_plugin_sys_emptyrecyclebin"), + IcoPath = "Images\\recyclebin.png", + Action = (c) => + { + try + { + // Using 0 for the last part, let's us use all the windows pop-up and sounds + uint result = SHEmptyRecycleBin(System.IntPtr.Zero, null, 0); + } + catch (System.Exception ex) + { + MessageBox.Show("Error emptying recycle bin. \n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + return true; + } }, new Result { diff --git a/Plugins/Wox.Plugin.Sys/Wox.Plugin.Sys.csproj b/Plugins/Wox.Plugin.Sys/Wox.Plugin.Sys.csproj index 2bfb924a5c..47af63f417 100644 --- a/Plugins/Wox.Plugin.Sys/Wox.Plugin.Sys.csproj +++ b/Plugins/Wox.Plugin.Sys/Wox.Plugin.Sys.csproj @@ -63,6 +63,12 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -129,5 +135,4 @@ --> - - + \ No newline at end of file