玩轉VC 實現程式開機執行及登錄檔修改

2021-06-22 03:39:54 字數 2194 閱讀 3472



要實現windows

程式開機執行,需要在登錄檔中相關位置加入鍵值。所謂的鍵可以是你程式的名稱,值就是你程式的所在目錄。所謂的相關位置有兩處:

主鍵hkey_local_machine,software\microsoft\windows\currentversion\run下。

主鍵hkey_current_user, software\microsoft\windows\currentversion\run下。

區別就是前者針對機器上所有使用者,而後者只針對當前使用者。

在程式設計中對主鍵

hkey_current_user

的修改並不需要很高的許可權,而修改

hkey_local_machine

就需要admin

許可權。此時需要在

vs中配置一下即可:專案(右鍵)

--->

屬性--->

配置屬性

--->

鏈結器--->

清單檔案,將

uacexecution level

設成requireadministrator

。1、編輯登錄檔

我用atl的cregkey類實現成功,就談談這個類。官方文件在這裡。

我們將會使用5個函式,open,setstringvalue,deletevalue,querystringvalue,close。

1)開啟登錄檔

long open( 

hkey hkeyparent, //主鍵

lpctstr lpszkeyname, //子鍵名稱

regsam samdesired = key_read | key_write //操作許可權,預設是讀寫

) throw( );

2)儲存鍵值

long setstringvalue(

lpctstr pszvaluename, //key名稱

lpctstr pszvalue, //值

dword dwtype = reg_sz //字串型別,reg_sz是字串,reg_multi_sz多字串

) throw( );

3)刪除

long deletevalue( 

lpctstr lpszvalue // specifies the value field to remove.其實就是對應上面的pszvaluename

) throw( );

4)查詢

long querystringvalue( 

lpctstr pszvaluename, //key名稱

lptstr pszvalue, //返回查詢此key的值

ulong* pnchars //pszvaule的size,這個我也不是特別明了

) throw( );

5)關閉

long close( ) throw( );

2、獲取當前exe路徑

cstring path;

getmodulefilename(null,path.getbuffersetlength(max_path+1),max_path);

path.releasebuffer();

下面的**只是作為測試用,並不十分文雅,只是為大家展示一下解決方案,特此宣告。

我在mfc的對話方塊中加兩個按鈕,乙個是增加鍵值,另乙個刪除鍵值。增加鍵值也就是設定好開機啟動,刪除就是取消開機啟動。

**如下: 

1、add

void cautostart2dlg::clickcbadd()

else

else}}

mykey.close();

}

2、delete

void cautostart2dlg::clickcbdelete()

else

} mykey.close();

}

參考:原始碼:

猛擊我!

iOS越獄開機執行程式

2012 12 19 13 05 2387人閱讀收藏 舉報目錄 ps 顯示程序狀態,cpu使用率,記憶體使用情況等 sysctl 檢查設定kernel配置 netstat 顯示網路連線,路由表,介面狀態等 route 路由修改 renice 調整程式執行的優先順序 ifconfig 檢視網路配置 t...

Python 實現Windows開機執行某軟體

開機執行 隨系統啟動的應用程式,當系統啟動之後會自動載入的應用 在登錄檔中新增啟動項便可實現開機啟動。如下 coding utf 8 import win32api import win32con name oftpublic 要新增的項值名稱 path c softpublic.exe 要新增的e...

linux 開機執行程式的方法

開機執行程式的方法 1.在 etc rc.d rc.local檔案中加入程式路徑及程式名 或2.在 etc rc.d init.d 中新增可執行程式,然後在 etc rc.d rcn.d 中新增符號鏈結 n表示執行級別 先檢視 etc inittab檔案中當前系統設定的預設級別,再將符號連線新增到對...