-
-
没问题了...已经解决了...
-
发表于:
2007-12-3 06:23
3809
-
不好意思,昨晚...偶代码随便写...没从工程里面拷贝进来...让高手们以为偶代码写错了,让编译器
通过不了.....
按钮A:是实现获取一个某程序完整的路径(比如c:\qq.exe. qq放在c盘)
按钮B:是实现打开qq.exe程序
具体点:先按钮A时,里面内容是CFileDialog dlg(true)[true代表为打开对话框],打开另外一个程序(比如qq.exe),获得完整路径。
获得完整路径后。接着再按按钮B通过shellexecute()实现打开qq.exe。但是shellexecute()根本就不执行...
this->m_Textqq这是一个编辑框用来保存完整路径的。
先执行A按钮
void CCDeathDlg::OnA()
{
CFileDialog saveFileDialog(true,".exe",NULL,NULL,"qq文件(*.exe)|*.exe|",NULL);
CString FilePathName;
if(saveFileDialog.DoModal()==IDCANCEL)//判断是否打开
return ;
this->m_Textqq=saveFileDialog.GetPathName();//this->m_Textqq这是一个编辑框用
//来保存路径的
UpdateData(false);
}
再执行B按钮
void CCDeathDlg::OnB()
{
AfxMessageBox("wo"); =================================有执行
ShellExecute(m_hWnd,"open",this->m_Textqq.GetBuffer(0),NULL,NULL,SW_SHOW);=======================没执行
AfxMessageBox("ni"); ==================================有执行
}
如果单独执行B按钮
void CCDeathDlg::OnB()
{
this->m_Textqq="C:\\qq.exe";============================先给值
AfxMessageBox("wo"); =================================有执行
ShellExecute(m_hWnd,"open",this->m_Textqq.GetBuffer(0),NULL,NULL,SW_SHOW);======================有执行
AfxMessageBox("ni"); ==================================有执行
}
为什么每次有象CFileDialog 或者C*Dialog有打开之后,就不能执行象Shellexecute()或
AfxGetApp()->WriteProfileString();函数...偶可是测试过的...快崩溃了...
谁能给方向....谢谢....
[培训]科锐逆向工程师培训第53期2025年7月8日开班!