首页
社区
课程
招聘
没问题了...已经解决了...
发表于: 2007-12-3 06:23 3809

没问题了...已经解决了...

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日开班!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
应该是你那个ShellExecute函数执行失败, 可以跟进,找一下原因出在哪里
2007-12-3 08:20
0
雪    币: 321
活跃值: (275)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
3
,同意楼上的说法,如果方便的话,可以把你的工程打包发过来。qq:391136515
2007-12-3 08:47
0
游客
登录 | 注册 方可回帖
返回