看板 Browsers 關於我們 聯絡資訊
剪貼簿增強工具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://www.ptt.cc/bbs/Browsers/M.1459780627.A.C29.html
t7yang: 快推,不然人家以為我看不懂 04/04 23:12
koihime: 有用ditto也有用nircmd不過真沒想到這樣用XD 04/07 08:01
mayuyu: 如果不在沙盒裡的話不用nircmd也可以 04/07 08:41
mayuyu: ditto本身就支援命令列 寫成批次檔處理也可以 04/07 08:42
mayuyu: 可是我的Fx是放在沙盒裡 不放行cmd.exe就不能用 04/07 08:42
mayuyu: 而放行cmd.exe我覺得太恐怖xD 剛好nircmd可以送按鍵 04/07 08:42
mayuyu: 所以想說放行nircmd可能還好一點...? 04/07 08:42
koihime: 我的fx也在沙盒裡,不過我就直接用快速鍵叫他了XD 04/07 10:05
koihime: 用vimperator之在fx上用滑鼠的時間不多所以就沒想去設XD 04/07 10:06