레지스트리에 쓰기 시작
void XXXX::OnBnClickedAutorunCheckbtn()
{
//-----------------------------------------------
// HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//Run
// , exe
// , , .
//
// LONG RegOpenKeyEx(HKEY hKey, //
// LPCTSTR lpSubKey, //
// DWORD ulOptions, // , 0
// REGSAM samDesired, // ,
// PHKEY phkResult //
// )
// RegSetValueEx: , , .
//-----------------------------------------------
// exe .
TCHAR tcExePath[MAX_PATH] = {0};
::GetModuleFileName(NULL, tcExePath, MAX_PATH);
// .
#ifndef AUTORUN_APP_NAME
#define AUTORUN_APP_NAME (TEXT("hgy test autorun"))
#else
#endif
LPCTSTR lpSubKey = TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
HKEY hKey;
if (m_AutoRun.GetCheck())
{
if (ERROR_SUCCESS
== ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, KEY_WRITE, &hKey))
{
// , ,
if (ERROR_SUCCESS == ::RegSetValueEx(hKey, AUTORUN_APP_NAME, 0, REG_SZ, (BYTE*)tcExePath, MAX_PATH))
{
}
else
{
AfxMessageBox(TEXT(" "));
}
::RegCloseKey(hKey);
}
}
else
{
#if 1 // , ,
if (ERROR_SUCCESS
== ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, KEY_SET_VALUE, &hKey))
{
::RegDeleteValue(hKey, AUTORUN_APP_NAME);
}
#endif
#if 0
//
::ZeroMemory(tcExePath, MAX_PATH);
if (ERROR_SUCCESS
== ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, KEY_WRITE, &hKey))
{
// ,
if (ERROR_SUCCESS == ::RegSetValueEx(hKey, AUTORUN_APP_NAME, 0, REG_SZ, (BYTE*)tcExePath, MAX_PATH))
{
}
else
{
AfxMessageBox(TEXT(" "));
}
::RegCloseKey(hKey);
}
#endif
}
}
m_AutoRun은 checkbox입니다. 이것은 응답 함수입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제한된 크기의 디렉토리를 만드는 방법오늘 저는 장치에 공간이 없을 때 백업 중에 응용 프로그램이 어떻게 작동하는지 테스트(및 수정)하는 작업이 있습니다. 결과적으로 "남은 공간 없음"오류로 백업이 실패하면 새 파일이 없어야 합니다. 지금까지 문제를 재...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.