diff --git a/src/helps/HELP.html b/src/helps/HELP.html new file mode 100644 index 0000000..7e1c00f --- /dev/null +++ b/src/helps/HELP.html @@ -0,0 +1,247 @@ + + +
+ +一、添加命令基础常用动作模拟按键进阶匹配关键字正则/划词窗口/进程复制/选中文件环境quickcommandpython、cmd、shell 、php 等环境插值变量全模式可用匹配窗口/进程时可用匹配正则/划词时可用匹配复制/选中文件时可用输出二、导出/分享/导入导出命令分享命令导入命令获取分享三、关于作者赞赏码所有插件
通过点击+动作
按钮进行添加
通过点击+按键
按钮进行添加
决定通过何种方式进入插件,不同的匹配模式也会影响插值变量的使用
本插件内置了一些特殊的插值变量,可以获取一些特殊的值,能够加入到插件里的任意脚本中
{{isWin}}
是否Window系统, 返回1或0{{LocalId}}
本机唯一ID{{BrowserUrl}}
浏览器的当前链接{{ClipText}}
获取剪贴板的文本{{SelectText}}
获取选中的文本 (已弃用){{subinput}}
获取子输入框的文本,具有此变量时会在进入插件时自动启动子输入框{{pwd}}
资源管理器或访达的当前目录
{{SelectFile}}
文件管理器选中的文件,不支持 Linux
{{WindowInfo}}
当前窗口信息,返回 JSON 格式字符串
{{WindowInfo.id}}
的格式来直接读取相应的值{{input}}
获取主输入框的文本{{MatchedFiles}}
匹配的文件,返回 JSON 格式字符串
{{MatchedFiles[0].path}}
的格式来直接读取相应的值如果脚本有输出,则可以对输出内容做如下处理
特殊符号大全
)点击命令旁的蓝色小箭头即可导出命令,支持
点击分享命令即可一键分享当前的命令,初次分享命令,需要按照以下步骤设置 token:
1.通过 https://www.yuque.com/g/fofolee/em2rng/collaborator/join?token=6LZn2vc34dqfIQdC 成为知识库成员,如果没有语雀账号,需要先注册一个
2.生成一个具有编辑权限的 token
3.在插件内填入生成的 token,之后就可以尽情地分享命令啦
导入命令
来导入命令点击设置界面底部的获取分享
即可获取并导入在线分享的命令啦
鉴于之前某位可爱的同学捐赠的时候捐错了对象,此处献上我的捐赠码~
所有由我制作的插件如下表所示,有兴趣的童鞋可以试一试~
![]() | 快捷命令 | |
![]() | 程序员手册 | |
![]() | bilibili | |
![]() | 关闭进程 | |
![]() | 插件面板 | |
![]() | 随机壁纸 | |
![]() | Github助手 | |
![]() | 文件夹助手 | |
![]() | emoji搜索 | |
![]() | 😩能不能好好说话 | |
![]() | winget | |
![]() | icons8搜索 | |
![]() | kali 工具介绍 | |
![]() | png转icon |
![]() | 快捷命令 | |
![]() | 程序员手册 | |
![]() | bilibili | |
![]() | 关闭进程 | |
![]() | 插件面板 | |
![]() | 随机壁纸 | |
![]() | Github助手 | |
![]() | 文件夹助手 | |
![]() | emoji搜索 | |
![]() | 😩能不能好好说话 | |
![]() | winget | |
![]() | icons8搜索 | |
![]() | kali 工具介绍 | |
![]() | png转icon |
quickcommandshowButtonBox(callback, buttons)
showInputBox(callback, placeHolders)
showSelectList(callback, selects, options)
showTextAera(callback, placeholder)
showMessageBox(message, icon, time)
sleep(ms)
setTimeout(callback, ms)
htmlParse(html)
downloadFile(url, defaultPath, showDialog)
payload
kill(pid, signal)
simulateCopy()
simulatePaste()
上下文一览
showButtonBox(callback, buttons)
callback: Function 回调函数
buttons: Array 每一个元素对应一个按钮
显示一个按钮对话框,用来接收用户的输入
示例
x
quickcommand.showButtonBox(({index, text})=>{
console.log(`选择了第${index+1}个按钮`)
console.log(`按钮的文本为${text}`)
},["按钮1", "按钮2", "按钮3"])
实例
xxxxxxxxxx
# 截取自内置快捷命令: 文本处理
quickcommand.showButtonBox(option => {
var i = option.index
console.log(textManipulation[i](text))
message('结果已复制到剪贴板')
}, ["字数统计", "词频统计", "文本逆转", "\\和/互转", "全部大写", "全部小写",
"去除空格", "十六进制转字符", "字符转十六进制"
])
textManipulation = [ ]
showInputBox(callback, placeHolders)
callback: Function 回调函数
placeHolders: Array 每一个占位符对应一个输入框
显示一个输入框界面,用来接用户的输入
示例
xxxxxxxxxx
quickcommand.showInputBox(values => {
console.log(`输入的内容分别为${values}`)
},["输入框1", "输入框2", "输入框3"])
实例
xxxxxxxxxx
# 截取自内置快捷命令: 文本替换
quickcommand.showInputBox(inputs => {
var search = inputs[0]
var repl = inputs[1]
utools.hideMainWindow()
quickcommand.sleep(300)
quickcommand.simulateCopy()
quickcommand.sleep(100)
var source = electron.clipboard.readText()
source = source.replace(search, repl)
}, ["要替换的内容,两边加 / 使用正则", "替换为的内容"])
showSelectList(callback, selects, options)
callback: Function 回调函数
selects: Array 每一个元素对应一个列表选项
options: Array | undefined 列表的选项
显示一个支持搜索的选项列表,类似于列表模式,但原理不同
示例
xxxxxxxxxx
var opt = []
for (var i = 0; i < 15; i++) {
opt.push(`选项` + i)
}
quickcommand.showSelectList(choise => {
console.log(`选择的选项为${choise.text}`)
}, opt)
实例
xxxxxxxxxx
# 截取自内置快捷命令: 离线插件
const api = 'https://api.u-tools.cn/Plugins/Developer/allPlugins'
axios(api).then(res => {
var document = quickcommand.htmlParse(res.data)
var doms = document.querySelectorAll('div[style]')
var divs = []
doms.forEach(d => {
d.querySelector('a').style.display = 'none'
d.querySelector('h3+div').style.color = '#9e9e9e'
d.querySelector('h3').style = "margin: 0; font-weight: normal"
divs.push(d.innerHTML)
})
quickcommand.showSelectList(x => {
var dom = quickcommand.htmlParse(x.text)
var href = dom.querySelector('a').href
var file = dom.querySelector('h3').innerText + '.upx'
var filepath = path.join(utools.getPath('downloads'), file)
quickcommand.downloadFile(href, filepath).then(() => {
utools.shellShowItemInFolder(filepath)
})
}, divs, { enableHTML: true, closeOnSelect: false })
})
showTextAera(callback, placeholder)
callback: Function 回调函数
placeholder: String | undefined 文本框占位符
显示一个文本框界面,用来接用户的输入
示例
xxxxxxxxxx
quickcommand.showTextAera(text=>{
console.log(`输入的文本为${text}`)
}, "请输入文本")
实例
xxxxxxxxxx
# 截取自内置快捷命令: vscode代码片段生成器
var snippet = {}
quickcommand.showTextAera(code => {
snippet.body = code.split("\n")
quickcommand.showInputBox(inputs => {
snippet.prefix = inputs[1]
snippet.description = inputs[0]
var result = `"${inputs[0]}": ` + JSON.stringify(snippet, null, '\t')
console.log(result)
utools.copyText(result)
quickcommand.showMessageBox('已复制')
}, ["代码片段的描述", "触发代码片段的关键词"])
}, ("请输入代码片段"))
showMessageBox(message, icon, time)
success
、error
、warning
、info
、question
,默认为success
3000
显示一个自动消失的提示框
示例
xxxxxxxxxx
quickcommand.showMessageBox("这是一段3s后自动消失的成功提示")
quickcommand.showMessageBox("这是一段3s后自动消失的失败提示", "error")
sleep(ms)
由于setTimeout
在electron中存在限制,在隐藏到后台时不会被执行,在vm2中也有bug,所以在quickcommand的环境下被禁用了,但对于模拟按键之类的场景,延迟是不可缺少的,所以提供了sleep
函数来解决这个问题
示例
xxxxxxxxxx
utools.simulateKeyboardTap('d', 'alt')
quickcommand.sleep(200)
utools.simulateKeyboardTap('c', 'ctrl')
setTimeout(callback, ms)
用法和setTimeout
一样,但实现原理不一样,sleep
的异步版本
示例
xxxxxxxxxx
quickcommand.setTimeout(()=>{
console.log('2000毫秒后执行')
}, 2000)
htmlParse(html)
html
文本DOM
对象将给定的html
字符串解析为DOM
对象,用于快速编写爬虫脚本
示例
xxxxxxxxxx
var html = `<a href="https://u.tools/">uTools</a>`
var href = quickcommand.htmlParse(html).querySelector('a').href
console.log(`解析出来的a标签地址为${href}`)
downloadFile(url, defaultPath, showDialog)
url: String 地址
defaultPath: String | undefined 当showDialog
为false
时,表示下载文件的绝对路径,当showDialog
为true
时,表示对话框默认显示的文件名
showDialog: Boolean | undefined 是否弹出对话框 ,默认为false
返回: Promise
Buffer
下载文件,也可单纯用于http
请求,无论defaultPath
是否定义,都将得到响应内容的Buffer
,当showDialog
为false
且定义了defaultPath
时,会下载文件为`defaultPath
,当showDialog
为true
时,会弹出保存文件对话框,defaultPath
为对话框默认显示的文件名
x# 返回http响应内容
quickcommand.downloadFile('https://www.baidu.com').then(r=>{
console.log(r.toString())
})
# 下载文件到D:/
quickcommand.downloadFile('https://res.u-tools.cn/currentversion/uTools-1.1.3.exe', 'D:/')
# 下载文件,并弹出对话框询问保存路径
quickcommand.downloadFile('https://res.u-tools.cn/currentversion/uTools-1.1.3.exe', 'uTools.exe', true)
payload
utools.onPluginEnter
的 payload
当匹配模式为关键字
时,返回进入插件的关键字;为正则
时,返回匹配的文本;为窗口
时,返回匹配的窗口信息;为文件
时,返回匹配的文件信息
示例
xxxxxxxxxx
# 匹配模式为正则/划词时
var text = quickcommand.payload
console.log(`主输入框匹配的文本为${text}`)
kill(pid, signal)
'SIGTERM'
将 signal
发送给 pid
标识的进程 , 默认为关闭进程,同process.kill
示例
xxxxxxxxxx
quickcommand.kill(16084)
simulateCopy()
模拟复制操作
simulatePaste()
模拟粘贴操作
nodejs 文档
electron 文档
utools 文档
quickcommand
quickcommandshowButtonBox(buttons)
showInputBox(placeHolders)
showSelectList(selects, options)
updateSelectList(opt, id)
showTextAera(placeholder)
showMessageBox(message, icon, time)
sleep(ms)
setTimeout(callback, ms)
htmlParse(html)
downloadFile(url, defaultPath, showDialog)
payload
kill(pid, signal)
simulateCopy()
simulatePaste()
上下文一览
showButtonBox(buttons)
callback: Function 回调函数
buttons: Array 每一个元素对应一个按钮
返回: Promise
显示一个按钮对话框,用来接收用户的输入
示例
x// then 写法
quickcommand.showButtonBox(["按钮1", "按钮2", "按钮3"]).then(({ id, text }) => {
console.log(`选择了第${id+1}个按钮`)
console.log(`按钮的文本为${text}`)
})
// async 写法
(async () =>{
let button = await quickcommand.showButtonBox(["按钮1", "按钮2", "按钮3"])
console.log(`选择了第${button.id+1}个按钮`)
console.log(`按钮的文本为${button.text}`)
})()
// 捕获错误
quickcommand.showButtonBox().catch(e => {
console.log(e)
})
实例
xxxxxxxxxx
// 截取自内置快捷命令: 通过 find 查找文件
quickcommand.showButtonBox(['打开文件', '在文件管理器中定位', '复制文件路径']).then(x => {
switch (x.id) {
case 0:
utools.shellOpenItem(file);
break;
case 1:
utools.shellShowItemInFolder(file);
break;
case 2:
utools.copyText(file);
break;
default:
break;
}
})
showInputBox(placeHolders)
placeHolders: Array 每一个占位符对应一个输入框
返回: Promise
显示一个输入框界面,用来接用户的输入
示例
xxxxxxxxxx
quickcommand.showInputBox(["输入框1", "输入框2", "输入框3"]).then(values => {
console.log(`输入的内容分别为${values}`)
})
实例
xxxxxxxxxx
// 截取自内置快捷命令: 文本替换
quickcommand.showInputBox(["要替换的内容,两边加 / 使用正则", "替换为的内容"]).then(inputs => {
var search = inputs[0]
var repl = inputs[1]
utools.hideMainWindow()
quickcommand.sleep(300)
quickcommand.simulateCopy()
quickcommand.sleep(100)
var source = electron.clipboard.readText()
source = source.replace(search, repl)
})
showSelectList(selects, options)
selects: Array 每一个元素对应一个列表选项
options: Array | undefined 列表的选项
plaintext
、html
、json
三种,默认为plaintext
返回: Promise
optionType
为json
时,对应json
里的每一个属性 显示一个支持搜索的且可以动态更新的选项列表
当指定optionType
为json
时,类似于插件开发的列表模式
,title
、description
和icon
分别表示标题、描述和图标,其中title
为必备属性
示例
xxxxxxxxxx
// plaintext
var opt = []
for (var i = 0; i < 15; i++) {
// 每一个选项为文本格式
opt.push(`选项` + i)
}
quickcommand.showSelectList(opt).then(choise => {
console.log(`选择的选项为${choise.text}`)
})
// json
var opt = []
for (var i = 0; i < 15; i++) {
// 每一个选项为 json 格式
opt.push({title: `选项${i}`, description: `选项${i}的描述`, abcd: `选项${i}的自定义属性`})
}
quickcommand.showSelectList(opt, {optionType: 'json'}).then(choise => {
console.log(`选择的选项为${choise.title}`)
})
// html
var opt = []
for (var i = 0; i < 15; i++) {
// 每一个选项为 html 格式
opt.push(`<div style="color: red">选项${i}</div>`)
}
quickcommand.showSelectList(opt, {optionType: 'html'}).then(choise => {
console.log(`选择的选项为${quickcommand.htmlParse(choise.text).body.innerText}`)
})
实例
xxxxxxxxxx
// 截取自内置快捷命令: 文本处理
let textManipulation = [ ]
let text = quickcommand.payload
let options = textManipulation.map(t => {
return {
title: t.name,
description: t.func(text)
}
})
quickcommand.showSelectList(options, { optionType: 'json' })
.then(choise => {
console.log(choise.description)
utools.copyText(choise.description)
})
axios.post('http://fy.iciba.com/ajax.php?a=fy', `f=auto&t=auto&w=${text}`)
.then(res => {
let content = res.data.content
let trans = content.out ? content.out : content.word_mean
let opt = textManipulation[0]
opt.description = trans
quickcommand.updateSelectList(opt, 0)
})
updateSelectList(opt, id)
动态更新当前的选项列表的选项。
示例
xxxxxxxxxx
// 初始状态只有 1、2、3 三个选项
quickcommand.showSelectList(['1','2','3']).then(x=>{
console.log(x)
})
// 1s 后追加一个选项
quickcommand.setTimeout(()=>{
quickcommand.updateSelectList('4')
}, 1000)
// 2s 后更新第二个选项的值
quickcommand.setTimeout(()=>{
quickcommand.updateSelectList('updated', 1)
}, 2000)
showTextAera(placeholder)
placeholder: String | undefined 文本框占位符
返回: Promise
显示一个文本框界面,用来接用户的输入
示例
xxxxxxxxxx
quickcommand.showTextAera("请输入文本").then(text=>{
console.log(`输入的文本为${text}`)
})
实例
xxxxxxxxxx
// 截取自内置快捷命令: vscode代码片段生成器
var snippet = {}
quickcommand.showTextAera("请输入代码片段").then(code => {
snippet.body = code.split("\n")
quickcommand.showInputBox(["代码片段的描述", "触发代码片段的关键词"])
.then(inputs => {
snippet.prefix = inputs[1]
snippet.description = inputs[0]
var result = `"${inputs[0]}": ` + JSON.stringify(snippet, null, '\t')
console.log(result)
utools.copyText(result)
quickcommand.showMessageBox('已复制')
})
})
showMessageBox(message, icon, time)
success
、error
、warning
、info
、question
,默认为success
3000
显示一个自动消失的提示框
示例
xxxxxxxxxx
quickcommand.showMessageBox("这是一段3s后自动消失的成功提示")
quickcommand.showMessageBox("这是一段3s后自动消失的失败提示", "error")
sleep(ms)
由于setTimeout
在electron中存在限制,在隐藏到后台时不会被执行,在vm2中也有bug,所以在quickcommand的环境下被禁用了,但对于模拟按键之类的场景,延迟是不可缺少的,所以提供了sleep
函数来解决这个问题
示例
xxxxxxxxxx
utools.simulateKeyboardTap('d', 'alt')
quickcommand.sleep(200)
utools.simulateKeyboardTap('c', 'ctrl')
setTimeout(callback, ms)
用法和setTimeout
一样,但实现原理不一样,sleep
的异步版本
示例
xxxxxxxxxx
quickcommand.setTimeout(()=>{
console.log('2000毫秒后执行')
}, 2000)
htmlParse(html)
html
文本DOM
对象将给定的html
字符串解析为DOM
对象,用于快速编写爬虫脚本
示例
xxxxxxxxxx
var html = `<a href="https://u.tools/">uTools</a>`
var href = quickcommand.htmlParse(html).querySelector('a').href
console.log(`解析出来的a标签地址为${href}`)
downloadFile(url, defaultPath, showDialog)
url: String 地址
defaultPath: String | undefined 当showDialog
为false
时,表示下载文件的绝对路径,当showDialog
为true
时,表示对话框默认显示的文件名
showDialog: Boolean | undefined 是否弹出对话框 ,默认为false
返回: Promise
Buffer
下载文件,也可单纯用于http
请求,无论defaultPath
是否定义,都将得到响应内容的Buffer
,当showDialog
为false
且定义了defaultPath
时,会下载文件为`defaultPath
,当showDialog
为true
时,会弹出保存文件对话框,defaultPath
为对话框默认显示的文件名
xxxxxxxxxx
// 返回http响应内容
quickcommand.downloadFile('https://www.baidu.com').then(r=>{
console.log(r.toString())
})
// 下载文件到D:/
quickcommand.downloadFile('https://res.u-tools.cn/currentversion/uTools-1.1.3.exe', 'D:/')
// 下载文件,并弹出对话框询问保存路径
quickcommand.downloadFile('https://res.u-tools.cn/currentversion/uTools-1.1.3.exe', 'uTools.exe', true)
payload
utools.onPluginEnter
的 payload
当匹配模式为关键字
时,返回进入插件的关键字;为正则
时,返回匹配的文本;为窗口
时,返回匹配的窗口信息;为文件
时,返回匹配的文件信息
示例
xxxxxxxxxx
// 匹配模式为正则/划词时
var text = quickcommand.payload
console.log(`主输入框匹配的文本为${text}`)
kill(pid, signal)
'SIGTERM'
将 signal
发送给 pid
标识的进程 , 默认为关闭进程,同process.kill
示例
xxxxxxxxxx
quickcommand.kill(16084)
simulateCopy()
模拟复制操作
simulatePaste()
模拟粘贴操作
nodejs 文档
electron 文档
utools 文档
quickcommand