作者mayuyu ((・ω・)ノ)
看板Browsers
标题Re: [-Fx-] 请问火狐有连续复制的附件吗?
时间Mon Apr 4 22:37:02 2016
剪贴簿增强工具Ditto可以分好几次选取不同的段落,
分别复制多次以後,打开复制的历史列表,
按住Ctrl或Shift选择多个复制的历史,
然後将所有复制的内容全部一次贴上。
「用FireGestures召唤Ditto」
Ditto有全域的热键可以随时弹出复制历史列表,
预设是Ctrl+`,其实按起来很快,
不过因为我已经有用AutoCopy,
选取文字後就会自动复制,不需要按到键盘的按键,
所以如果能够用手势就打开Ditto的历史列表,
就可以单手完成复制贴上的工作。
(如果滑鼠有很多的按键,也可以用滑鼠的巨集)
在整个Windows系统上,可以用StrokesPlus画手势送出
Ditto的热键acSendKeys("^`"),
就可以在Windows系统的任何地方快速的打开Ditoo的历史列表。
在Fx里由於我排除了StrokesPlus,只用FireGesture来侦测手势,
所以需要由FireGestures来送出按键传送给系统,
这个功能不能用FireGestures自己的sendKeyEvent,
所以要用别的做法。
Ditto本身支援命令列的参数,执行Ditto.exe -open,
就可以打开Ditto的历史列表,
所以FireGestures的脚本可以写成
var localFile = Components.classes["@mozilla.org/file/local;1"].
createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].
createInstance(Components.interfaces.nsIProcess);
var args = ["-open"];
localFile.initWithPath("C:\\Program Files\\Ditto\\Ditto.exe");
//Ditto.exe的位置
process.init(localFile);
process.run(false, args, args.length);
但是因为我的Fx放在沙盒里,被限制权限,所以不能这样用。
也可以写成bat从命令列执行,但是我的沙盒又限制其他程式启动执行,
只有少数程式程式放行,因此无法启动cmd.exe,所以这个方法也不行。
因为要放行cmd.exe觉得不太好,刚好我有用NirCmd,
所以想说改用NirCmd来传送按键给系统会不会好一点?
使用NirCmd的方法,下载NirCmd,免安装,
解压缩放到任意位置,例如C:\nircmd-x64底下。
新增一个FireGestures滑鼠手势,脚本填入
var localFile = Components.classes["@mozilla.org/file/local;1"].
createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].
createInstance(Components.interfaces.nsIProcess);
var args = ["sendkeypress", "ctrl+192"]; //('的VirtualKeyCode=192)
localFile.initWithPath("C:\\nircmd-x64\\nircmd.exe"); //NirCmd的位置
process.init(localFile);
process.run(false, args, args.length);
然後在沙盒里放行nircmd.exe。
另一种方法还是用StrokesPlus,
可以单独设定一个手势给firefox.exe弹出Ditto,
然後勾选Preferences设定里面的"Relay Gesture on No Match*",
这样除了单独设定的弹出Ditto的手势以外,
其他没有设定的手势都会被StrokesPlus忽略,
重新传递给FireGestures去处理。
不过这个方法有很大的缺点,
因为StrokesPlus要判断是否要忽略要等手势完全画完,
等手势画完让StrokesPlus判断完以後才能交给FireGestures处理,
因此手势处理的回应会慢半拍,用起来感觉会顿顿的。
请问有没有其他比较好的方法,可以在沙盒里不用放行额外的程式,
直接用手势画出Ditto的历史列表视窗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.219.36.186
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Browsers/M.1459780627.A.C29.html
1F:推 t7yang: 快推,不然人家以为我看不懂 04/04 23:12
2F:推 koihime: 有用ditto也有用nircmd不过真没想到这样用XD 04/07 08:01
3F:→ mayuyu: 如果不在沙盒里的话不用nircmd也可以 04/07 08:41
4F:→ mayuyu: ditto本身就支援命令列 写成批次档处理也可以 04/07 08:42
5F:→ mayuyu: 可是我的Fx是放在沙盒里 不放行cmd.exe就不能用 04/07 08:42
6F:→ mayuyu: 而放行cmd.exe我觉得太恐怖xD 刚好nircmd可以送按键 04/07 08:42
7F:→ mayuyu: 所以想说放行nircmd可能还好一点...? 04/07 08:42
8F:推 koihime: 我的fx也在沙盒里,不过我就直接用快速键叫他了XD 04/07 10:05
9F:→ koihime: 用vimperator之在fx上用滑鼠的时间不多所以就没想去设XD 04/07 10:06