DWORD theDWRegType = REG_SZ | REG_EXPAND_SZ;
#define DATASIZE 1688
void CAUTODlg::OnOpen()
{
char chData[DATASIZE] ;
DWORD dwSize = DATASIZE;
CString strInto ;
strInto = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" ;
int i ;
for ( i = 0 ; i<10 ; i++ )
{::RegOpenKeyEx(HKEY_LOCAL_MACHINE,strInto , NULL ,KEY_EXECUTE , &m_Path);
::RegEnumValue(m_Path ,i , (LPTSTR)chData , &dwSize,NULL,NULL,NULL,NULL) ;
SetDlgItemText(IDC_EDIT1 , chData ) ;
::RegCloseKey(m_Path) ;
OnAdd();
}
}void CAUTODlg::OnAdd()
{
CString str ;
GetDlgItemText(IDC_EDIT1 ,str ) ;
CListBox *lbx ;
lbx = (CListBox*)GetDlgItem(IDC_LIST2) ;
lbx->AddString(str) ;
SetDlgItemText( IDC_EDIT1 , "") ;
}
我是想列出启动项中的项目,怎么list中的项目只有3项,而且重复!!!
各位看看呀~~怎么回事?
#define DATASIZE 1688
void CAUTODlg::OnOpen()
{
char chData[DATASIZE] ;
DWORD dwSize = DATASIZE;
CString strInto ;
strInto = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" ;
int i ;
for ( i = 0 ; i<10 ; i++ )
{::RegOpenKeyEx(HKEY_LOCAL_MACHINE,strInto , NULL ,KEY_EXECUTE , &m_Path);
::RegEnumValue(m_Path ,i , (LPTSTR)chData , &dwSize,NULL,NULL,NULL,NULL) ;
SetDlgItemText(IDC_EDIT1 , chData ) ;
::RegCloseKey(m_Path) ;
OnAdd();
}
}void CAUTODlg::OnAdd()
{
CString str ;
GetDlgItemText(IDC_EDIT1 ,str ) ;
CListBox *lbx ;
lbx = (CListBox*)GetDlgItem(IDC_LIST2) ;
lbx->AddString(str) ;
SetDlgItemText( IDC_EDIT1 , "") ;
}
我是想列出启动项中的项目,怎么list中的项目只有3项,而且重复!!!
各位看看呀~~怎么回事?
void CAUTODlg::OnOpen()
{
char chData[DATASIZE] ;
DWORD dwSize = DATASIZE;
CString strInto ;
strInto = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" ;
int i ;
for ( i = 0 ; i<10 ; i++ )
{
::RegOpenKeyEx(HKEY_LOCAL_MACHINE,strInto , NULL ,KEY_EXECUTE , &m_Path);
dwSize = DATASIZE; // 这里一定要重新赋值,因为RegEnumValue调用之后会改变该值
LONG lRet = ::RegEnumValue(m_Path ,i , (LPTSTR)chData , &dwSize,NULL,NULL,NULL,NULL);
if( ERROR_SUCCESS == lRet )
{
SetDlgItemText(IDC_EDIT1 , chData ) ;
::RegCloseKey(m_Path) ;
OnAdd();
}
else
break;
}
}