I have previously developed all my source code under VC++ 6.0 under windows 2000.
I have upgraded my PC to XP and have now run into a problem using Following code:
Fun Part is this code works fine in win 2000 but not working in WIN XP:
WHat I am trying to do is when I click the exe file I will show me message that user have 30 days rmains for trial period and register that date (CURRENT DATE) IS FIRST CODE I wrote:
SetAvailability();
COleDateTime timeStart;
COleDateTimeSpan timePassed;
int daysLeft = 0;
HKEY hk;
DWORD dwDisp;
RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\AVTRON MANUFACTURING\\ADDAPT\\PARAMETERS",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE | KEY_READ,
NULL,
&hk,
&dwDisp);
int iRetValProdCode =
RegQueryValueEx(hk,
"USR:App Name\\ProductCode",
NULL,
NULL,
NULL,
NULL);
CAddaptApp* pAddaptApp = (CAddaptApp*)AfxGetApp();
if(iRetValProdCode != ERROR_SUCCESS)
{
DWORD cbData = sizeof(pAddaptApp->m_dwProductCode);
RegQueryValueEx(hk,
"USR:App Name\\ProductCode",
NULL,
NULL,
(LPBYTE)&pAddaptApp->m_dwProductCode,
&cbData);
}
if(iRetValProdCode != ERROR_SUCCESS || pAddaptApp->m_dwProductCode == 0)
{
int iRetVal = RegQueryValueEx(hk,
"USR:App Name\\FirstInstallDateTime",
NULL,
NULL,
NULL,
NULL);
COleDateTime currDateTime = COleDateTime::GetCurrentTime();
if(iRetVal != ERROR_SUCCESS)
{
RegSetValueEx(hk,
"USR:App Name\\FirstInstallDateTime",
0,
REG_DWORD,
(LPBYTE) &currDateTime,
sizeof(currDateTime));
}
timeStart = COleDateTime::GetCurrentTime();
DWORD cbData = sizeof(timeStart);
RegQueryValueEx(hk,
"USR:App Name\\FirstInstallDateTime",
NULL,
NULL,
(LPBYTE)&timeStart,
&cbData);
timePassed = COleDateTime::GetCurrentTime() - timeStart;
daysLeft = 30 - static_cast<int>(timePassed.GetTotalDays());
CString strMessage;
if (daysLeft <= 0)
{
CProductCodeDlg dlg;
dlg.DoModal();
if(pAddaptApp->m_dwProductCode != 0)
{
RegSetValueEx(hk,
"USR:App Name\\ProductCode",
0,
REG_DWORD,
(LPBYTE) &pAddaptApp->m_dwProductCode,
sizeof(pAddaptApp->m_dwProductCode));
}
else
{
return FALSE;
}
}
else
{
strMessage.Format(_T("ADDapt is operating under a trial license. \n")
_T("You have %d" " days to activate ADDapt with a valid license.\n")
_T("To activate, Please call Avtron Field Service at 216 642-1230 ext 1214. \n")
_T("Do you want to Proceed?"), daysLeft);
int iRespVal = AfxMessageBox(strMessage, MB_YESNO | MB_ICONEXCLAMATION);
if(iRespVal == IDNO)
{
return FALSE;
}
}
}
and Set of Code Register the product code:
void CProductCodeDlg::OnDone()
{
UpdateData(TRUE);
DWORD num = (m_dwProductCode & 0x02e0);
if( (m_dwProductCode == 0x02e0 ) ||
m_dwProductCode != m_dwInitialCode &&
m_dwProductCode >= ( (m_dwSerialNum + 1001000) & 0xfff1f) &&
m_dwProductCode <= ( ((m_dwSerialNum + 1001000) & 0xfff1f) + 225) )
{
CParameters::ProductCode(num);
CAddaptApp* pApp = (CAddaptApp*)AfxGetApp();
pApp >SetAvailability();
HKEY hk;
DWORD dwDisp;
int iRetVal =RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\AVTRON MANUFACTURING\\ADDAPT\\DON\\ADDAPT",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE | KEY_READ,
NULL,
&hk,
&dwDisp);
if(iRetVal == ERROR_SUCCESS)
{
RegSetValueEx(hk,
"USR:App Name\\Section1ProductCode",
0,
REG_DWORD,
(LPBYTE) &pApp->m_dwProductCode,
sizeof(pApp ->m_dwProductCode));
}
}
CDialog::OnOK();
Thank you in advance and looking forward to hear from you soon.
Vijay Patel