经常可以看到一个程序调用另一个程序,比如一些工具软件调用系统的cmd,calc等小工具是怎么实现的呢?
解决方案 »
- 这样的字符类型你知道么?
- 菜单栏选项无法更改vs2008里面的项目属性
- 关于实现在Win98下对目录及子目录下文件的监控问题...
- 用VC做数据库,需要些什么准备呀?
- 在VC为什么不能生成窗体.总是出错
- UNICODE, ANSI ,UTF-8 UTF-16 GB2312 BIG5 ...请高手解释
- 土土的问,关于SDK里的数据类型问题
- 我在用递归计算时遇到的问题
- 一个小问题:win2000中,它可以记忆你输入的一些内容(好像叫自动记忆功能吧),比如你信箱的用户名,但想去掉它,怎么办?
- 单向链表的每个结点存放1-10的int型数,如何用递归算法求它们的平均值?
- VC++ 上位机程序运行时占用 CPU50% 如何解决?
- 请教各位前辈,如何打开一个收缩了部分的对话框,然后可以扩展,就像QQ聊天窗口收缩和扩展QQ秀那部分
ShellExecute(NULL, "open", "C:\\TEST.EXE", "", NULL, SW_SHOWNORMAL);
WinExec("C:\\TEST.EXE", SW_SHOWNORMAL);
》》》
(1) 打开指定网址的web页(比如在IpInstaller中右键打开设备的web页):
ShellExecute(NULL, NULL, _T("http://172.22.104.8"), NULL, NULL, SW_SHOWNORMAL);(2) 启动指定的可执行文件(可不传参数,也可以传参数 – 以命令行的形式,具体参见DvrCfgAndPlayBack工具):
TCHAR fullPath[MAX_PATH];
TCHAR drive[_MAX_DRIVE];
TCHAR dir[_MAX_DIR]; GetModuleFileName(NULL, fullPath, MAX_PATH);
_tsplitpath_s(fullPath, drive,_MAX_DRIVE, dir,_MAX_DIR, NULL,0, NULL,0);
CString strPath = CString(drive) + dir;
strPath += _T("AccFileConverter.exe"); //获取可执行文件的完整路径 LPCTSTR Operaton = _T("open");
ShellExecute(NULL, Operaton, strPath, NULL, NULL, SW_SHOWNORMAL);(3) 可以打开指定的文件(比如.txt, .doc, .pdf)(我们可以将软件的使用手册写好放在可执行文件的当前目录中,用户可以从主程序的菜单即可调出):
TCHAR fullPath[MAX_PATH];
TCHAR drive[_MAX_DRIVE];
TCHAR dir[_MAX_DIR]; GetModuleFileName(NULL, fullPath, MAX_PATH);
_tsplitpath_s(fullPath, drive,_MAX_DRIVE, dir,_MAX_DIR, NULL,0, NULL,0);
CString strPath = CString(drive) + dir;
strPath+=_T("Help001.chm"); CString cmd;
ShellExecute(NULL, _T("open"), strPath, NULL, NULL, SW_SHOWNORMAL);(4) 可以打开指定的文件所在的目录,并选中该文件 (比如在下载程序,我们可以右键点击打开文件所在的文件夹):
TCHAR fullPath[MAX_PATH];
TCHAR drive[_MAX_DRIVE];
TCHAR dir[_MAX_DIR]; GetModuleFileName(NULL, fullPath, MAX_PATH);
_tsplitpath_s(fullPath, drive,_MAX_DRIVE, dir,_MAX_DIR, NULL,0, NULL,0);
CString strPath = CString(drive) + dir;
strPath += _T("20100722153027.vas");
CString strParam;
strParam.Format(_T("/n, /select, %s"), strPath); //传入参数,包含文件的完整路径 LPCTSTR Operaton = _T("open");
ShellExecute(NULL, Operaton, _T("Explorer.exe"), strParam, NULL, SW_SHOWNORMAL);
WinExec();
CreateProcess();
连system()这个函数都是可以的。