From 948eb509cbcd0159e22effcdd3a04e526d82c4fd Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Apr 2020 09:01:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=AB=98=E4=BA=AE=E3=80=81?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E5=BF=AB=E6=8D=B7=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/index.js | 215 +++++++++++++++++++++++++++++++++++------------- index.html | 4 +- 2 files changed, 159 insertions(+), 60 deletions(-) diff --git a/assets/index.js b/assets/index.js index 94514cb..be63eb7 100644 --- a/assets/index.js +++ b/assets/index.js @@ -1,6 +1,5 @@ -DARWIN_DEFAULT_ICON = 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAABYlAAAWJQFJUiTwAAAFNWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHRpZmY6T3JpZW50YXRpb249IjEiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA0LTI0VDEwOjAwOjE1KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wNC0yNFQxMDowMToyMyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wNC0yNFQxMDowMToyMyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MGQzMmU1Yi02OWY4LTRhOWYtYWUxNS0wMWEwZWY2Mzc2YTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTBkMzJlNWItNjlmOC00YTlmLWFlMTUtMDFhMGVmNjM3NmE0IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTBkMzJlNWItNjlmOC00YTlmLWFlMTUtMDFhMGVmNjM3NmE0Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTBkMzJlNWItNjlmOC00YTlmLWFlMTUtMDFhMGVmNjM3NmE0IiBzdEV2dDp3aGVuPSIyMDE5LTA0LTI0VDEwOjAxOjIzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vwRiLQAAAuRJREFUWIXtlz1vHFUUhp9z52Mn67UTs7YcCSnio0AhFHSIgnSIIoqEokiIOgVtfkF+QmoqSxRUiI4SiShBCKVPhQSyowg7C14p9to7d+aeQ7E7s7vxWMGwa1PwSqMZzcc9z5zznntnxMw4T7lzjf5fAIirgwvtNh98dP1Dn+fZoqoiAq0sy39++PCno8PBLMCNW7e/jES+6O3uIK4pMTLe29Txy3r5WvUmAhhmRre7xo1btzeBOzMA+XD48XfffsNyZwkZPzBfADCM/YMBn372+SfVHTVAWfi91dVLb62trZNmKb43xHLFrcRQGtJymFfCfkm83iLseSR1xN0UC6+umXMO7z1R7zlF4feOAaiaYYaaUvRz0qsdktczit+HUBhhvyTKHEvvrTB40KNz8zLmlcGjP3Dt6JUAADYKgenEZTWAqWIGOgy0Lnd47c4blM9yyt0dunff5uCHHvF6imvFXHj/EsXTI/pfb+Oy0zWSmaGqk8zUGTDFzMAJlivlnzn+twGmht86RAclmivF1hGHj/dwyzHJlTZWnK5lzAybApiUIChqiiRC6Hv6m1u03ulgXund/wVJHdFyTHb1Igc/9iifDYnXUsqnR/8qA7MlUAMDt5IQ+p6DB6P6SuIQIPQL9r/fIVpNGT55AQLuYgJ/w4T1i5qiGhoyoIFqXRADySKibNZcEglRKwXALY8fPUXwyoQamjygip7BwmSmhKkMTABCGBMuFsLM0NAEoGHGnfOWiIzjWHMJQjirEtiMCWuA0UR0jgBBF++BavzmLgi6UA/UcfSELjANtQcqwyxKdtI8cFZq9MCiAaaz2rwankkG7FismcUIRqTOOVzjd+E/12g8dzKAqjqAEEK9zVMiUtfexrFmAJIk6QJsb2/PNXCT4jjuHgMoiuKra9fevTcYHMqi/OCcY6ndNu/9ZnVObKr3NzY23hSR1HQ0I8xrNqjGEucEs2Jnd/fXybfH/z+n56y/AJCowRn/6NLmAAAAAElFTkSuQmCC' -WINDOW_DEFAULT_ICON = 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEUSURBVFhHYxgFgw2w+vv7C9ASA+1ggViFBiIiImISEhLuREVFfaAljo+PPxsZGWkJtRYBgoICzgUHBvzz9/X97+9HIww0O9Df/09QUFAr1FoEcJ9/9ILXotP/PBec+E9TvPDUH/f5Rzqg1iKA+6an5712vvnnse3Ff5rina//uG980g61FgHcNz4877XtxT+PzU/+0xRvf/7Hff2jUQeMOmDUAaMOGHXAqANGHTDqgEHoALf190/57fvyz2v7i/9e21/SBgObZD57Pv52XX23EWotAhh1rUpw3/DwofuGB5/dNtyjCQaaD6TvXjLuWGUDtRYFsDCwsWnwGdqbcOpY0QTzGVqZAO1RAWJmsI2jYOABAwMAOrpjfXCfUOgAAAAASUVORK5CYII=' -WINDOW_EMPTY_FILE = 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAItSURBVFhH7dbJTgJBEAZgHslnFhAEBZFNNodhX4XRI3gm4cCwryFl/x1mIgg6NeNNO6lwov+Pppdy/Y9zQ9PeqKu9Uqer0UunS+12h1rtF2q22tRotqjeaFK93qBqrU7Vao0qlSqVyxUqlcpULJbwqatq4eowHX8gfLfbsWu/35OmadTvvwtIUVeUvD0EfjkmXK1WrMJ3ABgMBgLRJzWv6rncMx+BZXcCGA6HJkJRFD2byfIQ+M+dAEajkYno9XokVkE/TG1tYMM5AYTD4aNKJpN0mNrawG63AzhXmCeVSvEAOGq/AVgul3Kep+QTD4Bz7hSAcAOQSCSYAHHJOAEY4ajtdkuJOBOAG84u4HP4YrGQgHgszgSI69UO4DTcAMSiMR4AdzsXcC58Pp9LQPQxygPgYeEALoUbgEgkwgPgVbMK+C4ctdlsKBJ+4AHwpFoB/BQ+m80kALfhYWpro1Ao/giwEm4CQiEeQDQT3wKshk+nUwkI3d/zAPm8ehHACTcAd8E7HkB0MmcB3HDUer2mYCDIBDwrXwB2wieTiQQEbgM8gGggjgB2w02A/5YJyOZMgJPw8XgsAX6fnwcQPZwEOA03AD7vDQ+QSWeOAHbDUVjFG6+XB0in0ibASbiu6xLg9Xh4APRwAOAhOS2c69PCMp+WsYFRHrebB0APhzYKnQyaCbzneFLxquFhkd2uuF5xw+GSwTnHUcNux4bDf45lxy9HuPv6mgf4Q8Pl+gDrDIc8RUYTMgAAAABJRU5ErkJggg==' +const DARWIN_DEFAULT_ICON = './imgs/darwin.png' +const WINDOW_DEFAULT_ICON = './imgs/window.png' CacheIcons = async tasks => { var noCaches = []; @@ -13,7 +12,6 @@ CacheIcons = async tasks => { if (noCaches.length != 0) { var b64Icons = await GetIcons(noCaches); b64Icons.forEach(i => { - if (i.b64Ico == WINDOW_EMPTY_FILE) i.b64Ico = WINDOW_DEFAULT_ICON; localStorage[basename(i.path, '.exe')] = i.b64Ico; }); } @@ -43,32 +41,32 @@ search = (t, text) => { var taskinfo = ''; var icon; if (window.isWin) { + icon = WINDOW_DEFAULT_ICON if (/^[A-z]:\\/.test(t.Path)) { - icon = localStorage[basename(t.Path, '.exe')] - } else { - icon = WINDOW_DEFAULT_ICON; + var cache = localStorage[basename(t.Path, '.exe')]; + if (cache) icon = 'data:image/png;base64,' + cache } - var n = (t.ProcessName + t.Description).toUpperCase(); + var n = t.ProcessName.toUpperCase(); if (n.includes(text)) { var mem = (parseInt(t.WorkingSet) * 100 / window.totalMem).toFixed(2); // path = t.Path ? t.Path : ''; taskinfo = `
- +
${t.ProcessName}
M: ${mem}%
${t.Path}
`; } } else { if (t.app) { - icon = localStorage[basename(t.app, '.app')]; + icon = 'data:image/png;base64,' + localStorage[basename(t.app, '.app')]; } else { icon = DARWIN_DEFAULT_ICON } var n = t.nam.toUpperCase(); if (n.includes(text)) { - taskinfo = `
-
${t.usr}
- + taskinfo = `
+ +
${t.nam}
C: ${t.cpu}% M: ${t.mem}%
${t.path}
`; @@ -87,6 +85,7 @@ show = text => { window.mouseLockTime = new Date().getTime(); let tasknum = $(".taskinfo").length utools.setExpendHeight(tasknum > 11 ? 550 : 50 * tasknum); + if(text) $(".description,.path").highlight(text, 'founds');  } utools.onPluginEnter( async ({ code, type, payload }) => { @@ -97,26 +96,41 @@ utools.onPluginEnter( async ({ code, type, payload }) => { localStorage[key] = db.data[key] } } - var initTime = new Date().getTime(); + // var initTime = new Date().getTime(); window.tasks = await tasklist(); - var tasksLoadedTime = new Date().getTime(); - tasksLoadedTime -= initTime; // 读取进程耗时 - console.log(tasksLoadedTime); + // var tasksLoadedTime = new Date().getTime(); + // tasksLoadedTime -= initTime; + // console.log(tasksLoadedTime); await CacheIcons(tasks); - var iconsCachedTime = new Date().getTime(); - iconsCachedTime -= (tasksLoadedTime + initTime); // 缓存图标耗时 - console.log(iconsCachedTime); + // var iconsCachedTime = new Date().getTime(); + // iconsCachedTime -= (tasksLoadedTime + initTime); + // console.log(iconsCachedTime); show(''); + sign = isWin ? 'Alt' : '⌘'; + $('.numbers').html(` +
${sign}+1
+
${sign}+2
+
${sign}+3
+
${sign}+4
+
${sign}+5
+
${sign}+6
+
${sign}+7
+
${sign}+8
+
${sign}+9
+
${sign}+0
+
${sign}+-
` + ); utools.setSubInput(({ text }) => { window.text = text; show(text); - }, '输入进程名进行搜索'); + }, '左/右键 -> 关闭/重启进程; ctrl + c/e/r -> 复制路径/在文件管理器中显示/重启'); utools.onPluginOut(() => { var update = { _id: "iconCache", data: localStorage }; if (db) update._rev = db._rev; utools.db.put(update); + $('.numbers').html(''); }) }); @@ -137,42 +151,125 @@ $("#tasklist").on('mousemove', '.taskinfo', function () { } }); -$(document).keydown(e => { - switch (e.keyCode) { - case 13: - if (event.shiftKey) { - kill($(".select").attr('id'), $(".select").children(".path").html().replace(/\\/g, '/')) - } else { - kill($(".select").attr('id'), false); - } - 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" }) - .animate({ "opacity": "1" }) - } - break; - case 40: - let next = $(".select").next(); - if (next.length != 0) { - event.preventDefault(); - if (next.offset().top >= $(window).scrollTop() + 550) { - $("html").animate({ scrollTop: "+=50" }, 0); - } - next.addClass("select"); - $(".select:first").removeClass("select"); - } else { - $(".select").animate({ "opacity": "0.3" }) - .animate({ "opacity": "1" }) - } - break; +Mousetrap.bind('ctrl+c', () => { + var path = $(".select").children(".path").html(); + copy(path); + utools.showNotification('已复制') + return false +}); + +Mousetrap.bind('ctrl+e', () => { + var path = $(".select").children(".path").html(); + open(path); + return false +}); + +Mousetrap.bind('ctrl+r', () => { + kill($(".select").attr('id'), $(".select").children(".path").html().replace(/\\/g, '/')) + return false +}); + +Mousetrap.bind('enter', () => { + kill($(".select").attr('id'), false); + return false +}); + +Mousetrap.bind('down', () => { + let next = $(".select").next(); + if (next.length != 0) { + event.preventDefault(); + if (next.offset().top >= $(window).scrollTop() + 550) { + $("html").animate({ scrollTop: "+=50" }, 0); + } + next.addClass("select"); + $(".select:first").removeClass("select"); + } else { + $(".select").animate({ "opacity": "0.3" }) + .animate({ "opacity": "1" }) } -}); \ No newline at end of file + return false +}); + +Mousetrap.bind('up', () => { + 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" }) + .animate({ "opacity": "1" }) + } + return false +}); + +key = isWin ? 'alt' : 'command' + +Mousetrap.bind([`${key}+1`], function (e) { + var index = ($(window).scrollTop()) / 50; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+2`], function (e) { + var index = ($(window).scrollTop()) / 50 + 1; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+3`], function (e) { + var index = ($(window).scrollTop()) / 50 + 2; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+4`], function (e) { + var index = ($(window).scrollTop()) / 50 + 3; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+5`], function (e) { + var index = ($(window).scrollTop()) / 50 + 4; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+6`], function (e) { + var index = ($(window).scrollTop()) / 50 + 5; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+7`], function (e) { + var index = ($(window).scrollTop()) / 50 + 6; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+8`], function (e) { + var index = ($(window).scrollTop()) / 50 + 7; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+9`], function (e) { + var index = ($(window).scrollTop()) / 50 + 8; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+0`], function (e) { + var index = ($(window).scrollTop()) / 50 + 9; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) + +Mousetrap.bind([`${key}+-`], function (e) { + var index = ($(window).scrollTop()) / 50 + 10; + kill($(`.taskinfo:eq(${index})`).attr('id'), false); + return false; +}) diff --git a/index.html b/index.html index f4be667..d1d33d3 100644 --- a/index.html +++ b/index.html @@ -7,12 +7,14 @@ + + taskkill
-
+