[英]How to run an Application on windows start up in win32 API using visual c++
我在visual c ++中有一個Window(win32 API)應用程序。 我沒有使用MFC。 我必須在Windows啟動時運行我的應用程序。 我正在使用Windows 7和visual studio 2008.任何人都可以幫助我完成上述任務嗎? 提前致謝。
這是一些示例代碼:
HKEY hkey = NULL;
RegCreateKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);
RegSetValueEx(hkey, L"myapp", 0, REG_SZ , (BYTE*)path, (wcslen(path)+1)*2);
最直接的方法是創建一個注冊表項:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
(將代碼插入安裝程序以添加密鑰。)
如果您在HKEY_LOCAL_MACHINE
下創建它,它將應用於該計算機的所有用戶。 如果您在HKEY_CURRENT_USER
下創建它,則程序將在啟動時僅為該用戶自動運行。
只需將其添加到注冊表中的HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Run鍵即可。
通過SysInternals(現在的Microsoft)查看autoruns 。 它將向您展示Windows可以啟動進程的多種方式。 您將需要查看“登錄”選項卡,該選項卡顯示了幾個可以使您在Logon上啟動內容的文件和注冊表設置。 服務和驅動程序在系統啟動時啟動(不需要登錄)。 Bootexecute允許你在啟動時運行東西,這可能不是你想要的。
其余選項卡向您展示如何掛鈎到各種其他系統進程以加載代碼。 毫無疑問,Windows對惡意軟件作者來說已經成熟,特別是如果你以root身份運行。
CString csPath ="your path";
HRESULT hres = RegCreateKey(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);
hres = RegSetValueEx(hkey, L"your app", 0, REG_SZ , (BYTE*)csPath.GetBuffer(), (wcslen(csPath)+1)*2);
如果在HKEY_LOCAL_MACHINE下創建注冊表項,則會強制本地計算機上的所有用戶啟動應用程序。 在HKEY_CURRENT_USER鍵下面寫入條目,以便在啟動此應用程序時僅定位當前記錄的(活動)用戶。
不知道Win32,但是程序的簡單快捷方式如何:
C:\\ Documents and Settings \\\\開始菜單\\程序\\啟動
(或使用所有用戶而不是USER)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.