Skip to content

Commit

Permalink
修复Autorun问题,之前的Autorun的逻辑没有完全修复正常,重复点保存设置会有问题。
Browse files Browse the repository at this point in the history
Desc: 修复Autorun问题,之前的Autorun的逻辑没有修复处理好,重复点“保存设置”按钮会导致CheckBox的勾反转但实际设置没有改变。
Type: Feature
Link: NA
  • Loading branch information
KondeU committed Aug 19, 2021
1 parent 49cb22c commit 30a23d1
Showing 1 changed file with 27 additions and 13 deletions.
40 changes: 27 additions & 13 deletions AutoDiskCopier_v3/src/AutoDiskCopier.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class CAutoDiskCopier
bool m_bMD5Check;
bool m_bPopupConfirmDialog;
bool m_bAutorun;
bool m_bLastAutorun;

TCHAR m_szCopyFileSavePath[MAX_PATH];

Expand Down Expand Up @@ -81,6 +82,7 @@ class CAutoDiskCopier

m_bEnableNotifyIcon = true;
m_bAutorun = false;
m_bLastAutorun = m_bAutorun;
m_bPopupConfirmDialog = true;
m_bMD5Check = false;

Expand Down Expand Up @@ -114,6 +116,7 @@ class CAutoDiskCopier
ReadFile(hFile, m_szCopyFileSavePath, MAX_PATH * sizeof(TCHAR), &dwReaded, NULL);
ReadFile(hFile, m_szKey, MAX_PATH * sizeof(TCHAR), &dwReaded, NULL);
CloseHandle(hFile);
m_bLastAutorun = m_bAutorun;
}
}

Expand Down Expand Up @@ -187,25 +190,36 @@ class CAutoDiskCopier
TCHAR szFilePath[MAX_PATH];
GetModuleFileName(NULL, szFilePath, MAX_PATH);

HKEY hReg;
RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), &hReg);
if (m_bAutorun)
if (m_bAutorun != m_bLastAutorun)
{
if (ERROR_SUCCESS != RegSetValue(hReg, TEXT("AutoDiskCopier"), REG_SZ, szFilePath, (lstrlen(szFilePath) + 1) * sizeof(TCHAR)))
HKEY hReg;
RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), &hReg);
if (m_bAutorun)
{
MessageBox(hwnd, TEXT("自启动设置失败,请检查是否有注册表写权限(管理员权限)!"), TEXT("ADC - 保存设置"), MB_ICONWARNING);
m_bAutorun = false;
if (ERROR_SUCCESS == RegSetValue(hReg, TEXT("AutoDiskCopier"), REG_SZ, szFilePath, (lstrlen(szFilePath) + 1) * sizeof(TCHAR)))
{
m_bLastAutorun = m_bAutorun;
}
else
{
MessageBox(hwnd, TEXT("自启动设置失败,请检查是否有注册表写权限(管理员权限)!"), TEXT("ADC - 保存设置"), MB_ICONWARNING);
m_bAutorun = m_bLastAutorun;
}
}
}
else
{
if (ERROR_SUCCESS != RegDeleteKey(hReg, TEXT("AutoDiskCopier")))
else
{
MessageBox(hwnd, TEXT("自启动设置失败,请检查是否有注册表写权限(管理员权限)!"), TEXT("ADC - 保存设置"), MB_ICONWARNING);
m_bAutorun = true;
if (ERROR_SUCCESS == RegDeleteKey(hReg, TEXT("AutoDiskCopier")))
{
m_bLastAutorun = m_bAutorun;
}
else
{
MessageBox(hwnd, TEXT("自启动设置失败,请检查是否有注册表写权限(管理员权限)!"), TEXT("ADC - 保存设置"), MB_ICONWARNING);
m_bAutorun = m_bLastAutorun;
}
}
RegCloseKey(hReg);
}
RegCloseKey(hReg);
}


Expand Down

0 comments on commit 30a23d1

Please sign in to comment.