電腦快捷鍵在使用中非常的方便,特別是編輯文檔時,下面分享一些常用的電腦快捷鍵吧!
單獨按Windows:顯示或隱藏 “開始”功能表
Windows+BREAK:顯示“系統屬性” 對話框
Windows+D:顯示桌面
Windows+M:最小化所有窗口
Windows+Shift+M:還原最小化的窗口
Windows+E:開啟“資源管理器”
Windows+F:查找文件或文件夾
Windows+CTRL+ F:查找電腦
Windows+F1:顯示 Windows “幫助”
Windows+R:開啟“運行” 對話框
Windows+U:開啟 “公用程序管理器”
Windows+L:切換使用者(Windows XP新功能)
Ctrl+S 保存
Ctrl+W 關閉程序
Ctrl+N 新建
Ctrl+O 打開
Ctrl+Z 撤銷
Ctrl+F 查找
Ctrl+X 剪切
Ctrl+C 復制
Ctrl+V 粘貼
Ctrl+A 全選
Ctrl+[ 縮小文字
Ctrl+] 放大文字
Ctrl+B 粗體
Ctrl+I 斜體
Ctrl+U 下劃線
Ctrl+Shift 輸入法切換
Ctrl+空格 中英文切換
Shift+空格 半\全角切換
Shift+右擊 右菜單打開方式
Shift+F10 選中文件的右菜單
Shift+多級文件 全部關閉
Shift+Del 直接刪除文件
Shift+^ 處在中文標點符號半角在智能ABC中省曰號
Shift+\ 處在中文標點符號半角在智能ABC中頓號
真的不考慮點個贊嗎
超級熱鍵可通過簡單編程 —— 自動化完成復雜操作,提升效率。
本教程需要一個很小的開源軟件 ImTip ( 體積 639 KB ),了解 ImTip 請點擊:電腦必備:通用輸入法狀態提示,再也不怕按錯,再也不用看右下角
請右鍵點開 ImTip 托盤菜單,然后點擊「管理超級熱鍵」:
然后將熱鍵配置改為如下代碼,并且勾選「啟用超級熱鍵」,再點擊「保存」按鈕使熱鍵生效。
//大寫金額、日期、時間
["Ctrl+$"]=function(hFocus){
win.dlg.chineseNumber().show();
};
//打開調色器
["Ctrl+#"]=function(hFocus){
//創建選色器
var dlg=win.ui.ctrl.pick();
dlg.show();
//置頂
win.setTopmost(dlg.hwnd,true);
};
上面的配置定義了 "Ctrl+$","Ctrl+#" 這兩個熱鍵。中括號里是按鍵名字符串,等號的后面指定要輸入的文本或者需要執行的函數對象。
以上熱鍵配置將自動轉換為以下 aardio 代碼,然后編譯執行:
//導入超級熱鍵
import key.hotkey;
//創建超級熱鍵
var superHotkey=key.hotkey(winform);
//批量加載熱鍵配置表
superHotkey.loadTable({
["Ctrl+$"]=function(hFocus){
win.dlg.chineseNumber().show();
};
["Ctrl+#"]=function(hFocus){
var dlg=win.ui.ctrl.pick();
dlg.show();
win.setTopmost(dlg.hwnd,true);
};
});
超級熱鍵配置其實就是一個表對象 ( table )。每個熱鍵配置由等號分隔的鍵值對組成,等號前面指定熱鍵,等號后面用一個函數指定要執行的代碼。多個熱鍵配置使用分號隔開。
如果不會編程沒關系,下面會提供可直接復制粘貼的范例,建議先看幾個范例 —— 再看一下:aardio 編程語言快速入門——語法速覽
下面看一下 Ctrl + $ 熱鍵運行效果:
Ctrl + # 熱鍵運行效果:
1、如果首個按下的鍵不是控制鍵,則不必同時按住多個鍵。如果按下的鍵是已注冊的熱鍵前半部分,則阻止當前按鍵繼續發送。如果繼續按鍵已不符合任何熱鍵,則釋放已捕獲的按鍵并按原順序重新發送。
2、如果首次按住的是控制鍵( CTRL,ALT,SHIFT,WIN 之一),則必須同時按住多個鍵才算已完成熱鍵。如果這樣同時按住的多個鍵是一個已完成的熱鍵,但同時又是其他熱鍵的前半部分,則必須放開所有鍵才會生效。
3、如果注冊單個控制鍵熱鍵,并且加上 @ 前綴,則放開該鍵(且中間沒有按其他鍵)才算完成熱鍵。
4、超鍵熱鍵中任何鍵名都只表示該鍵名所在的按鍵,不區分上檔鍵。例如熱鍵 "~hi" 指連續按 3 個鍵,其中的 ~ 鍵不必按 Shift + ~。
5、超級熱鍵會檢測按鍵順序,["Ctrl+Shift"] 與 ["Shift+Ctrl"] 是不同的熱鍵。如果希望不同順序觸發同一個回調函數,則需要添加多個熱鍵配置。
示例:
//按連續按 3 個鍵,每個鍵都要放開。
["~AA"]=function(){
};
//按下Shift不放,再按2下Q。
["SHIFT+Q,Q"]=function(){
};
//按下Ctrl不放,再按K, 然后都放開。
["Ctrl+K"]=function(){
};
//按下Ctrl不放,再按2次K。
//因為不是其他熱鍵的前半部分,不需要等待放開。
["Ctrl+K,K"]=function(){
};
//表示按下 Shift 鍵再放開,中間不按其他鍵,
//通常不會阻止 Shift 切換輸入法狀態的默認熱鍵。
["@Shift"]=function(){
};
運行 「aardio 自帶范例 > Windows 窗口 > 快捷鍵 > 超級熱鍵」看下效果:
熱鍵回調函數返回 true 表示允許系統繼續發送按鍵,否則取消該按鍵,不再繼續發送。
例如把斜杠“/”改為頓號的熱鍵配置:
["/"]=function(hFocus){
var openState,mode=key.ime.state();//
if( !openState /*&&(mode==3) */ ) return true;
key.sendString("、")
};
上面的代碼檢測到當前不是中文標點就執行 return true 允許系統繼續發送按鍵。
如果熱鍵回調函數返回一個函數對象,則取消該按鍵不再發送,并在返回函數以后異步執行返回的函數對象。
例如輸入法糾錯熱鍵配置就是這樣做的:
["Ctrl+,"]=function(hFocus){
//... 省略其他代碼
//通過返回函數異步執行耗時操作
return function(){
key.combine("SHIFT","HOME");
key.combine("CTRL","C");
//... 省略其他代碼
};
};
超級熱鍵基于低級鍵盤鉤子,在熱鍵回調中不允許做耗時操作(在熱鍵回調中返回異步執行的函數則不受限制)。
//運行計算器
["~calc"]=function(hFocus){
process.execute("calc.exe")
};
//運行word
["~word"]=function(hFocus){
var word=com.CreateObject("Word.Application")
if(word)word.Visible=true;
};
["Ctrl+P"]=function(){
var dpSchemes=tsfInput.getDoublePinyinSchemes();
tsfInput.enableoublePinyinScheme(dpSchemes.default===null);
}
["Ctrl+."]=function(hFocus){
key.up("Ctrl"); //先把已經按下的鍵彈起來
key.combine("CTRL","A"); //換成別的鍵,具體看 aardio 庫函數文檔
return false; //阻止按鍵事件
};
[";"]=function(hFocus){
if( winex.msCandidate.isVisible() ){
key.send(" ;")
}
else return true;
};
["SHIFT+BACK"]=function(hFocus){
key.up("SHIFT"); //先把已經按下的鍵彈起來
key.combine("CTRL","Z")
};
["/"]=function(hFocus){
var openState,mode=key.ime.state();//
if( !openState /*&&(mode==3) */ ) return true;
key.sendString("、")
};
//增加音量
["Ctrl+F6"]=function(hFocus){
key.press("VOLUME_UP");
}
//降低音量
["Ctrl+F7"]=function(hFocus){
key.press("VOLUME_DOWN");
}
//切換靜音
["Ctrl+F8"]=function(){
key.press("VOLUME_MUTE");
}
["~date"]=function(hFocus){
var zh=string.chineseNumber('〇一二三四五六七八九');
key.sendString(zh.date()); //改為 zh.time() 輸出大寫的當前時間
};
注意超鍵熱鍵中任何鍵名都只表示該鍵名所在的按鍵,不區分上檔鍵。所以 ~ 鍵不需要同時按 Shift + ~ 。
["CAPSLK"]=function(hFocus){
key.ime.setOpenStatus(false);
key.ime.setConversionMode(0);
return true;
};
["RSHIFT"]=function(hFocus){
key.ime.setOpenStatus(false);
key.ime.setConversionMode(0);
};
["LSHIFT"]=function(hFocus){
var openState,mode=key.ime.state();
if( openState && !key.ime.capital() ) return true; //當前已經是中文輸入模式,不改變默認行為
key.up("SHIFT");//先放開 SHIFT 鍵
//如果是大寫狀態,切換為小寫
if(key.ime.capital()) key.press("CAPSLK")
//英文直接切中文 + 中文標點
key.ime.setOpenStatus(true); //打開輸入法
key.ime.setConversionMode(1|0x400); //切換到中文狀態,這一步不能省略
//再次嘗試用鍵盤切換中文標點,這一步不能省略
key.combine("CTRL",".");
//現在再次檢測中文標點狀態
var openState,mode=key.ime.state();
if(mode!=3/*_IME_SYMBOLMODE_SYMBOL*/){
//說明切換到了英文標點,再切換回去
key.combine("CTRL",".")
}
};
["Ctrl+."]=function(hFocus){
var openState,mode=key.ime.state();
if( openState && !key.ime.capital() ) return true; //當前已經是中文輸入模式,不改變默認行為
key.up("Ctrl");//先放開 Ctrl 鍵
//如果是大寫狀態,切換為小寫
if(key.ime.capital()) key.press("CAPSLK")
//英文直接切中文 + 中文標點
key.ime.setOpenStatus(true); //打開輸入法
key.ime.setConversionMode(1|0x400); //切換到中文狀態,這一步不能省略
//再次嘗試用鍵盤切換中文標點,這一步不能省略
key.combine("CTRL",".");
//現在再次檢測中文標點狀態
var openState,mode=key.ime.state();
if(mode!=3/*_IME_SYMBOLMODE_SYMBOL*/){
//說明切換到了英文標點,再切換回去
key.combine("CTRL",".")
}
};
["Ctrl+,"]=function(hFocus){
var openState,mode=key.ime.state();
if( openState && !key.ime.capital() ) return true; //當前已經是中文輸入模式,不改變默認行為
key.up("Ctrl");//先放開 Ctrl 鍵
//如果是大寫狀態,切換為小寫
if(key.ime.capital()) key.press("CAPSLK")
//英文直接切中文 + 中文標點
key.ime.setOpenStatus(true); //打開輸入法
key.ime.setConversionMode(1|0x400); //切換到中文狀態,這一步不能省略
//再次嘗試用鍵盤切換中文標點,這一步不能省略
key.combine("CTRL",".");
//現在再次檢測中文標點狀態
var openState,mode=key.ime.state();
if(mode!=3/*_IME_SYMBOLMODE_SYMBOL*/){
//說明切換到了英文標點,再切換回去
key.combine("CTRL",".")
}
//通過返回函數異步執行耗時操作(避免系統刪除熱鍵鉤子)
return function(){
key.combine("SHIFT","HOME");//選中當前行
key.combine("CTRL","C");//復制當前行
var line=win.clip.read(); //讀取剪貼板文本
var str=string.match(line,"[a-zA-Z]+$"); //查找尾部連續字母
key.press("RIGHT");//按右方向鍵,取消選區
//如果字符串非空
if(#str){
key.repeat("BACK",#str);//按退格鍵指定次數(取字符串長度)
key.send(str);//字符串轉換為發送按鍵
//key.press("SPACE");//發果需要按空格,請取消前面的注釋符號
}
};
};
["Ctrl+V"]=function(){
var str=win.clip.read();
if(str && string.find(str,"abcd")){
str=string.replace(str,"abcd","");
win.clip.write(str);
}
return true; //執行默認操作
}
[`SHIFT+"`]=function(hFocus){
if( checkImeProcess(hFocus,"Code.exe") ){
return true;//允許繼續發送按鍵
}
var o,s=key.ime.state();
key.sendString(s==3 ? `“”` : `""`);
//與目標窗口共享輸入狀態
winex.attach(hFocus,true);
//設置LSHIFT,RSHIFT 為彈起狀態
key.up("RSHIFT","LSHIFT","SHIFT");
key.setState(false,"RSHIFT","LSHIFT","SHIFT");
//移動光標
key.press("LEFT");
//取消共享輸入狀態
winex.attach(hFocus,false);
}
["Ctrl+,"]=function(hFocus){
import win.reg;
var reg=win.reg("HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS");
var mode=!reg.queryValue("PinyinMixEnable") ? 1 : 0
reg.setDwValue("PinyinMixEnable",mode)
key.ime.changeRequest(0x4090409)
key.ime.changeRequest(0x8040804)
};
["Ctrl+SHIFT+RIGHT"]=function(hFocus){
::User32.SwapMouseButton(!::User32.GetSystemMetrics(23));
}
["`"]=function(hFocus){
var openState,mode=key.ime.state();//用法請查看 aardio 文檔
if(!openState
|| mode !=3 || key.getState("Shift")
|| key.getState("Ctrl")
|| key.getState("CAPSLK") ) {
return true; //允許此按鍵繼續發送
}
key.combine("SHIFT","LEFT"); //向后選一個字
key.combine("CTRL","C"); //復制
key.press("RIGHT"); //取消選中
key.combine("CTRL","V"); //粘貼
};
ImTip 體積雖然小,但已自帶了大量 #aardio# 庫。您也可以下載 aardio ,將 aardio 目錄下的 /lib/ 目錄復制到 ImTip.exe 所在目錄 —— 超級熱鍵就可以使用全部的 aardio 庫了。
也可以在 /lib/ 目錄下新建用戶庫,然后通過 import 語句導入超級熱鍵。
超級熱鍵配置本質是一個表對象 (table),不但可以包含鍵值對,也可以包含數組成員。利用這個特性可在超級熱鍵配置內直接執行代碼。例如添加一個檢測當前窗口啟動程序名的全局函數 checkImeProcess,然后使用該函數檢測目標窗口的啟動程序文件名:
(function(){
var lastFocus,lastPath,lastClass;
checkImeProcess=function(hFocus,exeFile){
if(lastFocus !=hFocus){
lastClass=win.getClass(hFocus);
var tid,pid=win.getThreadProcessId(hFocus);
lastPath=process.getPath(pid);
lastFocus=hFocus
}
return (lastPath && io.splitpath(lastPath).file==exeFile )
}
})();
//引號配對
[`SHIFT+"`]=function(hFocus){
if( checkImeProcess(hFocus,"Code.exe") ){
return true;//允許繼續發送按鍵
}
var o,s=key.ime.state();
key.sendString(s==3 ? `“”` : `""`);
//與目標窗口共享輸入狀態
winex.attach(hFocus,true);
//設置LSHIFT,RSHIFT 為彈起狀態
key.up("RSHIFT","LSHIFT","SHIFT");
key.setState(false,"RSHIFT","LSHIFT","SHIFT");
//移動光標
key.press("LEFT");
//取消共享輸入狀態
winex.attach(hFocus,false);
}
比較常用的按鍵、文本輸入函數:
//發送字符串
key.sendString("這里是要發送的字符串")
//發送按鍵
key.send("/")
//發送按鍵
key.press("ENTER")
//判斷中文輸入法是否打開,打開則執行花括號中的語句
if( key.ime.state() ){ }
更多庫函數用法請參考 aardio 自帶的《庫函數文檔》,或者 aardio 自帶的范例:
aardio 也支持很多第三方編程語言,例如 C語言、C++、C#、Java、Python、R、Javascript、Node.Js、Fortran、VB、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 語言、批處理 ...... 用法請參考 aardio 自帶范例。
如果您對超級熱鍵還有任何疑問,歡迎在評論區留言,我會盡快解答。