public static void Kill(string exeName) { using (var executor = new CommandExecutor()) { executor.Cmd($"taskkill /F /IM {exeName} /T"); } }
public void Main(ILeafUI ui, IClassTextManager textManager) { /* * 一定要进行using,此处是为了确保LeafUI被正确释放 * 否则当该函数内发生异常,LeafUI将无法被关闭 */ using (ui) { /*初始化UI,此时UI仍然不可见*/ //将LeafUI的图标设置为本模块的图标 ui.Icon = this.GetIconBytes(); //将LeafUI的标题设置为本模块的名称 ui.Title = this.GetName(); //绑定LeafUI关闭事件,并非必要的操作 ui.Closing += (s, e) => { /* * 当用户点击停止按钮时发生 * 请在此处销毁你调用的资源 * 如果你不想你的模块被中途停止,请返回false */ return(true); }; /*完成初始化,调用展示方法后,UI将可见*/ //显示UI ui.Show(); if (ui.DoYN("是否需要参看本拓展源代码?", "是", "否")) { Process.Start("https://github.com/zsh2401/AutumnBox/blob/master/AutumnBox.CoreModules/Extensions/NoMatter/ELeafUIDemo.cs"); } if (ui.DoYN("是否需要开启右上角问号?", "是", "否")) { ui.EnableHelpBtn(() => { Process.Start("https://github.com/zsh2401/AutumnBox/blob/master/AutumnBox.CoreModules/Extensions/NoMatter/ELeafUIDemo.cs"); }); } //在输出框打印东西 ui.WriteLine("这是普通输出,用于对用户的提示等"); /*设置进度与说明 * 当然,你也可以不进行设置 * LeafUI默认进度条是无限循环的(进度值为-1) * 默认提示是正在进行中等类似话语 */ Thread.Sleep(1000); ui.ShowMessage("进度条以及提示信息的演示"); ui.Tip = "第一步"; ui.Progress = 10; Thread.Sleep(500); //设置进度与说明 ui.Tip = "第二步"; ui.Progress = 40; Thread.Sleep(500); //设置进度与说明 ui.Tip = "第三步"; ui.Progress = 60; Thread.Sleep(500); ui.ShowMessage("进度条将变回无限循环"); ui.Progress = -1; //进行带有取消选项的选择 var choiceResult = ui.DoChoice("这是一个选择示例,请做出选择", "ping测试", "启动别的拓展模块", "什么也不做"); switch (choiceResult) { case true: var executor = new CommandExecutor(); executor.To(e => ui.WriteOutput(e.Text)); //重定向输出 executor.Cmd("ping www.baidu.com"); //通过此函数,可以显示专业输出,但不建议调用,此权利应该尽可能交给用户 ui.WriteLine("显示专业输出!"); ui.ProOutputVisible = true; executor.Dispose(); break; case false: //var thread = context.NewExtensionThread("EHoldMyHand"); //thread.Data["wtf"] = "aaa";//可以传参数哦 //thread.Start(); //thread.WaitForExit(); break; default: ui.ShowMessage("哼,气得我变大了!"); ui.WriteLine($"原大小:{ui.Width}x{ui.Height}"); ui.Width += 200; ui.Height += 200; ui.WriteLine($"后大小:{ui.Width}x{ui.Height}"); break; } ui.ShowMessage($"让我们来看看根据语言自动匹配的语言值: {textManager["testkey"]}"); //进行单选,让用户决定用那个方式结束 const string hint = "好了,该选择一个方式结束了"; const string item0 = "默认的完成方式"; const string item1 = "传入错误码1"; const string item2 = "直接设定完成提示信息"; const string item3 = "通过EFinish结束"; var result = ui.SelectFrom(hint, item0, item1, item2, item3); /* * 当完成函数流程时.一定要手动调用Finish()函数 * 如果不进行调用,那么当C# using将调用LeafUI的Dispose函数时 * LeafUI将视本模块执行过程出现问题,将直接关闭 */ switch (result as string) { case item0: ui.Finish(); //LeafUI将视为本模块执行成功,显示成功提示 break; case item1: ui.Finish(1); //LeafUI将根据传入的错误码进行分析,并设置完成提示 break; case item2: ui.Finish("功能结束"); //LeafUI不进行结果判断,而是将传入的字符串作为结束提示 break; default: /*EFinish调用后将抛出一个可以信号异常 * 也就是说会立刻停止当前函数的流程,而不像 * 普通的Finish那样继续执行之后的语句 */ ui.EFinish(); //由于EFinish抛出异常,下面的代码无法被执行 System.Environment.Exit(1); break; } } }