kill = (taskname, taskpath) => {
window.taskkill(taskname, taskpath, err => {
if (err) {
$("#infopannel").css({ "background": "#EF5350" });
$("#infopannel").html(err).fadeIn(300).delay(3000).fadeOut(300);
} else {
if(taskpath == undefined){
$("[name='" + taskname + "']").fadeOut(300).remove()
let tasknum = $(".taskinfo").length
utools.setExpendHeight(tasknum > 10 ? 500 : 50 * tasknum);
window.tasklist((task) => {
window.tasks = task
});
}else{
$("#infopannel").css({ "background": "#83bf40" });
$("#infopannel").html('重启进程成功!').fadeIn(300).delay(3000).fadeOut(300);
}
}
});
}
show = (tasks, text) => {
var taskinfo = '';
for (var t of window.tasks) {
if (t.ProcessName.toUpperCase().search(text.toUpperCase()) != -1 || t.Description.toUpperCase().search(text.toUpperCase()) != -1) {
let title = t.Description ? t.Description : t.ProcessName;
taskinfo += '
';
taskinfo += '

';
taskinfo += '
' + title + '
' + t.Path + '
';
}
}
$("#tasklist").html(taskinfo);
$(".taskinfo:first").addClass("select");
let tasknum = $(".taskinfo").length
utools.setExpendHeight(tasknum > 10 ? 500 : 50 * tasknum);
}
utools.onPluginEnter(({ code, type, payload }) => {
utools.setExpendHeight(0);
window.tasklist((task) => {
window.tasks = task
show(window.tasks, '');
utools.setSubInput(({ text }) => {
show(window.tasks, text);
}, '输入进程名,回车关闭,或点击关闭');
});
});
$("#tasklist").on('mousedown', '.taskinfo', function (e) {
if (1 == e.which) {
kill($(this).attr('name'));
} else if (3 == e.which) {
kill($(this).attr('name'), $(this).children(".path").html().replace(/\\/g, '/'))
}
});
$("#tasklist").on('mouseover', '.taskinfo', function () {
$(".select").removeClass('select');
$(this).addClass('select')
});
$(document).keydown(e => {
switch (e.keyCode) {
case 13:
if (event.shiftKey) {
kill($(".select").attr('name'), $(".select").children(".path").html().replace(/\\/g, '/'))
} else {
kill($(".select").attr('name'));
}
break;
case 38:
let pre = $(".select").prev();
if(pre.length != 0){
event.preventDefault();
if(pre.offset().top < $(window).scrollTop()){
$("html").animate({ scrollTop: "-=50" }, 0);
}
pre.addClass("select");
$(".select:last").removeClass("select");
}else{
$(".select").animate({"opacity":"0.3"}).delay(500).animate({"opacity":"1"})
}
break;
case 40:
let next = $(".select").next();
if(next.length !=0){
event.preventDefault();
if(next.offset().top >= $(window).scrollTop() + 500){
$("html").animate({ scrollTop: "+=50" }, 0);
}
next.addClass("select");
$(".select:first").removeClass("select");
}else{
$(".select").animate({"opacity":"0.3"}).delay(500).animate({"opacity":"1"})
}
break;
}
});