開發工具:autoit-v3漢化版(免費)
有些工具可以給我們的程式提供快速執行的功能,比如按下乙個快捷鍵,然後輸入定義好的簡名,就可以開啟指定的程式。今天我們也做乙個,而且我們的程式還不需要駐留記憶體,就算是把程式給刪除了,依舊可以使用簡名來快速啟動程式。
我們需要了解一下馬甲的原理,要「換了馬甲」也認識。首先找到登錄檔中的位置:
可以看到win系統最大馬甲是畫圖程式,即按下win+r出現的 「執行」中輸入「pbrush
」之後,就可以開啟mspaint.exe這個畫圖程式。根據此原理我們就可以打造我們的的馬甲。
因為小工具不僅支援exe,也支援那些快捷方式所對應的,以下**:
if stringright( $ls_runexe, 4 ) = ".lnk" then
$lnk_detail = filegetshortcut( $ls_runexe )
$ls_runexe = $lnk_detail[0]
endif
我們可以取得快捷方式所對應的具體程式(某些產品可能不能取得相應的程式名,主要微軟產品如word、excel之類,可深入研究)。得到實際執行程式後,在登錄檔中遍歷查詢對應程式,au3中對指定鍵值下進行遍歷是使用函式regenumkey,方法如下:
$i = 1
while @error = 0 and stringlen($ls_short)=0
$var = regenumkey( $ls_key, $i)
根據$var的值,我們再取得它所對應的程式:
$ls_regexe = regread( $ls_key & "\" & $var, "")
要判斷所取得的值和傳入的程式同名還是不同名,如果找到了短名,則記錄短名後結束。如果有短名,我們也不必給它記錄太多短名。這在某種程式上也起到查詢作用。
最後我們要求使用者輸入指定的快捷名,根據快捷名,按「馬甲」方式寫入:
$ls_shortcut = inputbox("
請輸入快捷簡名", "程式名:"& $ls_shortexe, $ls_quick )
if stringlen($ls_shortcut)>0 then
$ls_shortkey = $ls_key & "\" & $ls_shortcut & ".exe"
regwrite( $ls_shortkey, "", "reg_sz", $ls_runexe )
endif
這樣使用時輸入的專案就成了我們執行時的快捷名了。小巧工具,很有意義。
最後我們看看如何給乙個程式註冊簡名:
選定指定程式後點滑鼠右鍵,選「建立快捷名」,在圖中第3步輸入「gzz」後即可。執行中輸入「gzz」來啟動它,因為有時候不常用的程式,桌面上建立乙個快捷方式再開啟,不僅在桌面上佔地方,而且如果桌面放圖示太多也不容易找它,反而不如給它取個短名來得實在。
當然乙個工具雖然不駐記憶體,但是它還是要與登錄檔打交道的,具體可以看原始碼頭部的註冊與反註冊。
如果想進一步改造它,比如可以完成帶引數的啟動,用馬甲是無法實現的,可以建立乙個路徑來存放快捷方式的方法,有興趣可以做更一步研究。
2023年02
月01日完稿於浙江杭州
AIX小白傷不起有木有
這兩天被aix折騰個溜夠,遷移個server各種 1.一定要修改aix系統中預設的檔案大小限制 修改方法待編輯 2.注意保證25埠不被aix中 sendmail 程序占用 注釋方法待編輯 3.關於使用telnet遠端啟動domino,退出後保證domino不掛機的方法 at f server scr...
試一試有不有積分
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
Notification和KVO有什麼不同
notification是推送通知,我們可以建立乙個通知中心,存放建立多個通知,在不同的地方在需要的時候push呼叫 和kvo不同的是,kvo是鍵值觀察,只能觀察乙個值有乙個 notification center 的概念,他是乙個單例物件,允許當事件發生的時候通知一些物件,滿足控制器與乙個任意的物...