MFC中如果默认地打开一个文件? 一个MFC的程序,比如我要打开一个文件然后运行,但需要使用菜单上的"打开",然后在磁盘中选择一个文件,然后才能运行.如何才能使此MFC程序一运行,就直接打开了磁盘中的一个文件直接运行了?不用再去选中这个文件然后再运行? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方法1void OnButton(){ system("C:\\...\\xxx.exe");}方法2 创建进程void C...Dlg::OnButton() { STARTUPINFO StartupInfo; PROCESS_INFORMATION ProcessInfo; memset(&StartupInfo,0,sizeof(STARTUPINFO)); StartupInfo.cb=sizeof(STARTUPINFO); StartupInfo.dwFlags=STARTF_USESHOWWINDOW; StartupInfo.wShowWindow=SW_SHOWMINIMIZED; char* path="C:\\...\\xxx.exe"; ::CreateProcess(NULL,path,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo); } 希望对你有帮助:q: 在MDI中,如果设置了多个DocTemplate,那么,在新建文档时,总会有一个默认的对话框里让选择使用哪个模板。如何能避开这一环节,我想实现的是,如在菜单中有一项叫“打开模板一”,之后,就打开模板一.另有一项,“打开模板二”,就打开模板二,。。这是这样一个要求。简单地说,就是想绕过默认的那个土土的对话框。谢谢。A: 资源中String Table的IDR_XXXX_TYPE=\n服务器日志\n\n\n\nMServer.Log\nMServer LogTypeStr="MServer.Log"void CMainFrame::OpenSingleDocType(CString TypeStr){ POSITION pos; pos=((CMServerApp*)AfxGetApp())->m_pDocManager->GetFirstDocTemplatePosition(); CDocTemplate *pDocTemplate; CString Str; while(1) { pDocTemplate=((CMServerApp*)AfxGetApp())->m_pDocManager->GetNextDocTemplate(pos); pDocTemplate->GetDocString(Str,CDocTemplate::regFileTypeId); if(Str==TypeStr)break; } pDocTemplate->OpenDocumentFile(NULL);}使用:void CMainFrame::OnSystemLog() { // TODO: Add your command handler code here OpenSingleDocType("MServer.Log");} 在注册表之键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run或HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices下添加字符串REG_SZ值:“C:\\...\\xxx.exe” 关于VC对话框外观的问题! VS 2003.NET 中添加对话框时的 错误 控件显示的问题,高分相求。 使用shockwave flash控件所出现的问题 怎么在服务中启动exe文件 我想用VC编一个能截取某一IP的进出数据,不知道该怎么做。请大家给一点提示。 玩游戏遇到了“崩溃”,怎么解决呀? 如何学习软件工程,初学者请各位前辈指点 pDoc = GetDocument();问题 懒人求动态改变CListCtrl某一行背景颜色的方法 协议驱动程序中怎么将网卡设置成混杂模式?(来者有分) MFC中如果默认地打开一个文件?(共300分)
方法1
void OnButton()
{
system("C:\\...\\xxx.exe");
}
方法2 创建进程
void C...Dlg::OnButton() {
STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcessInfo;
memset(&StartupInfo,0,sizeof(STARTUPINFO));
StartupInfo.cb=sizeof(STARTUPINFO);
StartupInfo.dwFlags=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow=SW_SHOWMINIMIZED;
char* path="C:\\...\\xxx.exe";
::CreateProcess(NULL,path,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo);
}
简单地说,就是想绕过默认的那个土土的对话框。谢谢。
A: 资源中String Table的IDR_XXXX_TYPE=\n服务器日志\n\n\n\nMServer.Log\nMServer Log
TypeStr="MServer.Log"void CMainFrame::OpenSingleDocType(CString TypeStr)
{
POSITION pos;
pos=((CMServerApp*)AfxGetApp())->m_pDocManager->GetFirstDocTemplatePosition();
CDocTemplate *pDocTemplate;
CString Str;
while(1)
{
pDocTemplate=((CMServerApp*)AfxGetApp())->m_pDocManager->GetNextDocTemplate(pos);
pDocTemplate->GetDocString(Str,CDocTemplate::regFileTypeId);
if(Str==TypeStr)break;
}
pDocTemplate->OpenDocumentFile(NULL);
}使用:
void CMainFrame::OnSystemLog()
{
// TODO: Add your command handler code here
OpenSingleDocType("MServer.Log");
}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
或
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
下添加字符串REG_SZ值:“C:\\...\\xxx.exe”