您的位置:首页 > 其它

PPPOE登录程序五(配置程序部分)

2010-08-20 14:01 120 查看
//主意openprocess函数参数的使用,,很不容易呀,经常犯错
//结束双进程函数,退出进程时使用正确的退出代码
//还要主意的一个细节,就是CFileDialog类的使用,因为它会改变当前程序的目录,使用时需要使用SetCurrentDirectory()函数将当前程序目录还原,否则出现一些异常。
void CConfigDlg::OnBnClickedPathBtn()
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog dlg(true,0,0,0,_T("BMP图片格式|*.bmp||"),0,0,1);
dlg.DoModal();
m_picpath=dlg.GetPathName();
UpdateData(0);
::SetCurrentDirectory(m_curdic);

}

void CConfigDlg::OnBnClickedCloseLocked()
{
// TODO: 在此添加控件通知处理程序代码
HANDLE hProcess;
DWORD dwPidIfExist;

if (TRUE == bExistOne(_T("plck.exe"),&dwPidIfExist))
{

hProcess = OpenProcess(2035711,FALSE,dwPidIfExist);
TerminateProcess(hProcess,69);
}
else
{
MessageBox(_T("程序没有开启!!"));
}
}

//注册表操作函数,主意使用
bool CConfigDlg::SetAutoRun(bool bauto)
{
UpdateData();

HKEY hKey;
wchar_t pathname[MAX_PATH]=_T("");
wchar_t subkey[MAX_PATH]=_T("SOFTWARE//Microsoft//Windows//CurrentVersion//Run//");

::GetSystemDirectory(pathname,MAX_PATH);
wcscat(pathname,_T("//"));
wcscat(pathname,_T("plck.exe"));

if(bauto)
{

if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_WRITE,&hKey)==ERROR_SUCCESS)
{

if(RegSetValueEx(hKey,_T("Locked"),NULL,REG_SZ,(BYTE*)pathname,sizeof(pathname))!=ERROR_SUCCESS)
{
return false;
}
}

}
else
{
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_WRITE,&hKey)==ERROR_SUCCESS)
{
if(RegDeleteValue(hKey,_T("Locked"))!=ERROR_SUCCESS)
{
return false;
}

}
}

return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: