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