簡體   English   中英

如何在Windows上運行應用程序使用visual c ++在win32 API中啟動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM