Windows用(手動/ C ++コードの形で)配置の開始からブート
Windowsソフトウェアの原則の発売以来
- まず、Windows自体は、Windowsが内蔵されたように、データベースに理解することができるレジストリと呼ばれるレジストリメカニズムを有しているので、次のWindowsは、関連ソフトウェアの理念を実現するために、スタートから起動する方法を説明します。で
win+r
入力regedit
を確認し
- 示されるように、基本的にレジストリである
key-value
保存の形で。 - 悪意のある不正なソフトウェアは、レジストリを変更することで、システムを攻撃するために使用することができるシステムは、起動ソフトウェアからのデータベース(つまり、レジストリ)関連の設定情報を読みに行くためにデフォルト設定されますそして、開閉可能な窓があります。
- だから、あなたは限り、あなたはレジストリに対応する値を変更することができるよう、実際には、スタートからの起動を設定している場合。
- :レジストリに格納された位置変更
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
、限り、対応する文字列値を追加することができ、右ように。
- あなたはどちらの引用符にパス文字列のジョブを追加するために必要なソフトウェアを起動する必要があります。
最初からC ++コードを提供するソフトウェアの起動
- 原則の完全な理解は、C ++のコードは非常にシンプルな何かを開始した後、レジストリに書き込むことができます
- 次は、関連するコードです
bool WriteToRegedit(HKEY hKey_,std::wstring path_,std::wstring key_,std::wstring value_)
{
HKEY hkey;
::RegCreateKeyExW(hKey_,
path_.c_str(),
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hkey,
NULL);
//
::RegSetValueExW(hkey,
key_.c_str(),
0,
REG_SZ,
reinterpret_cast<LPBYTE>(const_cast<wchar_t*>(value_.c_str())),
sizeof(std::wstring::value_type) * (value_.size() + 1));
::RegCloseKey(hkey);
return true;
}
// 设置开机自启动方法
// @param:key_:启动项名称
// @param:value_:启动文件路径
// return: false: 设置失败 true:设置成功
bool SetBootStartUp(std::wstring key_,std::wstring path_ )
{
return WriteToRegedit(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\CurrentVersion\\Run",key_,path_);
}
コードは、文字列に対応する位置には、レジストリに書き込まれている、すなわち、比較的簡単である
使用:
std::wstring key_ = L"TestDemo";
std::wstring path = L"\"SSSS\"";
SetBootStartUp(key_,path);
- 私は助けたいです