15,471
社区成员
发帖
与我相关
我的任务
分享
//这一段是定时器定时点击的函数。m_bIsBeginCopy初始化为真,点击一次后为假。
// m_bHasFinish初始化为假,完成线程逻辑后为真 。
void CMyCopyDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
if (m_bHasFinish == true && m_Progress.GetPos() == m_pro_maxsize)
{
m_Progress.SetPos(0);
m_Progress.EnableWindow(false);
EndDialog(1);
CMyFinishDlg dlg;
dlg.DoModal();
}
if (m_bIsBeginCopy == true)
m_pThread = AfxBeginThread(CMyCopyDlg::CopyFileThenCreatSC, this);
m_bIsBeginCopy = false;
}
UINT CMyCopyDlg::CopyFileThenCreatSC(LPVOID pParm)
{
CStringArray name;
CMyCopyDlg* p = (CMyCopyDlg*)pParm;
int res = p->UnCompresss(_T(""), name, g_Package.m_setup_filepath);
if (g_Package.m_Component.hasTableSC == true) //若选择创建则创建桌面快捷方式
g_Package.CreateTableSC();
if (g_Package.m_Component.hasMenubarSC == true) //若选择创建则创建开始菜单快捷方式
g_Package.CreateMenuSC();
if (g_Package.m_Component.hasTaskbarSC == true) //若选择创建则创建任务栏快捷方式
{
LPITEMIDLIST PIDL;
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, &PIDL);
TCHAR dir[MAX_PATH];
ZeroMemory(dir, MAX_PATH);
SHGetPathFromIDList(PIDL, dir);
CString LinkFilename = dir; //得到菜单目录
int nRet = (int)::ShellExecute(NULL, _T("TaskbarPin"),
LinkFilename + _T("\\") + g_Package.m_AppInfo.AppName + _T(".lnk"),
NULL, NULL, SW_SHOW);
//返回值大于32表示成功
if (nRet <= 32)
AfxMessageBox(_T("无法将快捷方式固定到任务栏!"));
}
g_Package.WriteRegedit(); //将关键信息写入注册表
p->m_bHasFinish = true;
return res;
}