VC调用其他程序以及用其他程序打开相应文件
来源:互联网 发布:人工智能对战星际争霸 编辑:程序博客网 时间:2024/06/14 13:27
深入浅出ShellExecute
译者:徐景周(原作:Nishant S)
Q: 如何打开一个应用程序?
ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );
或
ShellExecute(this->m_hWnd,"open","notepad.exe", "c://MyLog.log","",SW_SHOW );
正如您所看到的,我并没有传递程序的完整路径。
Q: 如何打开一个同系统程序相关连的文档?
ShellExecute(this->m_hWnd,"open", "c://abc.txt","","",SW_SHOW );
Q: 如何打开一个网页?
ShellExecute(this->m_hWnd,"open", "http://www.google.com","","", SW_SHOW );
Q: 如何激活相关程序,发送EMAIL?
ShellExecute(this->m_hWnd,"open", "mailto:nishinapp@yahoo.com","","", SW_SHOW );
Q: 如何用系统打印机打印文档?
ShellExecute(this->m_hWnd,"print", "c://abc.txt","","", SW_HIDE);
Q: 如何用系统查找功能来查找指定文件?
ShellExecute(m_hWnd,"find","d://nish", NULL,NULL,SW_SHOW);
Q: 如何启动一个程序,直到它运行结束?
SHELLEXECUTEINFO ShExecInfo = {0};ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;ShExecInfo.hwnd = NULL;ShExecInfo.lpVerb = NULL;ShExecInfo.lpFile = "c://MyProgram.exe";ShExecInfo.lpParameters = "";ShExecInfo.lpDirectory = NULL;ShExecInfo.nShow = SW_SHOW;ShExecInfo.hInstApp = NULL;ShellExecuteEx(&ShExecInfo);WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或:
PROCESS_INFORMATION ProcessInfo; STARTUPINFO StartupInfo; //This is an [in] parameterZeroMemory(&StartupInfo, sizeof(StartupInfo));StartupInfo.cb = sizeof StartupInfo ; //Only compulsory fieldif(CreateProcess("c://winnt//notepad.exe", NULL, NULL,NULL,FALSE,0,NULL, NULL,&StartupInfo,&ProcessInfo)){ WaitForSingleObject(ProcessInfo.hProcess,INFINITE); CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess);} else{ MessageBox("The process could not be started...");}
Q: 如何显示文件或文件夹的属性?
SHELLEXECUTEINFO ShExecInfo ={0};ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;ShExecInfo.hwnd = NULL;ShExecInfo.lpVerb = "properties";ShExecInfo.lpFile = "c://"; //can be a file as wellShExecInfo.lpParameters = ""; ShExecInfo.lpDirectory = NULL;ShExecInfo.nShow = SW_SHOW;ShExecInfo.hInstApp = NULL; ShellExecuteEx(&ShExecInfo);
下面是我自己的代码,调用word打开doc或docx文件
- void COPenFileDlgDlg::OnBnClickedButton1()
- {
- // TODO: 在此添加控件通知处理程序代码
- //CFileDialog dlg(TRUE); //TRUE是显示为打开对话框,FALSE为另存为对话框
- CString strPathName;
- CString strFileName;
- CString strFlieTitle;
- CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("WORD文件(*.doc)|*.doc;*.docx|所有文件(*.*)|*.*||"));
- //||是指定分开,不然后面会有乱码, ";"是用于两种文件格式同时筛选
- if (dlg.DoModal() == IDOK)
- {
- /*
- //方法一
- strPathName = dlg.GetPathName(); //获取文件路径
- strFileName = dlg.GetFileName(); //获取文件名(包括后缀名)
- strFlieTitle = dlg.GetFileTitle();//获取文件名,没有后缀名
- MessageBox(strPathName + "/n" + strFileName+ "/n" + strFlieTitle);
- */
- //方法二
- POSITION pos;
- pos = dlg.GetStartPosition(); //获得最初的变量
- while(pos != NULL)
- {
- strPathName = dlg.GetNextPathName(pos);
- if (!strPathName.IsEmpty())
- {
- //MessageBox(strPathName);
- ShellExecute(this->m_hWnd,_T("open"),_T("WINWORD.EXE"),strPathName,NULL,SW_SHOW);
- //用word程序打开doc文件
- }
- }
- }
- }
- VC调用其他程序以及用其他程序打开相应文件
- VC调用其他程序以及用其他程序打开相应文件
- VC++调用其他程序
- vc 调用其他exe程序
- 程序调用其他程序
- android 如何调用(打开)其他程序
- android 如何调用(打开)其他程序
- android 如何调用(打开)其他程序
- VC中调用其他程序的函数
- Android 打开其他程序
- Java调用本地相应程序打开文件
- 调用其他程序
- android 调用其他程序
- android 调用其他程序
- android 调用其他程序
- python调用其他程序
- iphone程序启动互相调用, 打开其他程序
- iphone程序启动互相调用, 打开其他程序
- Android 分享文本和图片
- 使用TabHost实现微博客户端界面
- H.264视频的RTP荷载格式
- SQL Server 数据库学习笔记
- Linux--Shell快捷键
- VC调用其他程序以及用其他程序打开相应文件
- kafka学习之二
- C#中重写(override)和覆盖(new)的区别
- 10个基础的Linux网络和监控命令
- 最短摘要生成问题
- php中session过期时间设置
- 陀螺仪和加速度计
- 防止程序启动2次
- asp response.Write