系統有馬甲不駐記憶體也快捷

2022-05-04 12:18:10 字數 1704 閱讀 8881

開發工具: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 的概念,他是乙個單例物件,允許當事件發生的時候通知一些物件,滿足控制器與乙個任意的物...