CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

怎么在vc中像在vb中用shell一样调用应用程序?

楼主cloudfog(阿荣)2002-05-23 16:03:25 在 VC/MFC / 基础类 提问

怎么在vc中像在vb中用shell一样调用应用程序? 问题点数:20、回复次数:5Top

1 楼zy_9922(zy_9922)回复于 2002-05-23 16:07:27 得分 0

ShellExecuteTop

2 楼lant(蓝特)回复于 2002-05-23 16:10:23 得分 10

怎样加载其他的应用程序?    
   
  三个SDK函数   winexec,   shellexecute,createprocess可以使用。WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用   SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,就是Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。  
  ShellExecute较   WinExex灵活一点,可以指定工作目录,下面的Example就是直接打开   c:\temp\1.txt,而不用加载与   txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme   or   Faq,我猜就是这么作的啦.  
  ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)  
  CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的Example:  
    STARTUPINFO   stinfo  
  //启动窗口的信息  
    PROCESSINFO   procinfo   //进程的信息  
    CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,  
  NORMAL_PRIORITY_  
    CLASS,NULL,NULL,   &stinfo,&procinfo)    
  Top

3 楼cloudfog(阿荣)回复于 2002-05-24 15:16:29 得分 0

如果要在按下F1键时调用该怎么办?Top

4 楼FlyingSch(BoyWithWings)回复于 2002-05-24 15:19:10 得分 10

system()  
  ---------------------------------------  
  WinExec()   //   for   16   bit   application  
  ----------------------------------------  
  LoadModule()   //for   16   bit   application  
  ---------------------------------------  
  CreateProcess()   //   for   32   bit  
  例如:  
      STARTUPINFO   infoStart;  
  PROCESS_INFORMATION   infoProcess;  
   
  memset(&infoStart,0,sizeof(infoStart));  
  infoStart.cb=sizeof(infoStart);  
  if   (!CreateProcess("c:\\windows\\notepad.exe","open   d:\\temp.txt",NULL,NULL,FALSE,CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&infoStart,&infoProcess))  
  {  
  MessageBox("failed.");  
  }  
   
  ----------------------------------------  
  ShellExecute()   //  
  例如:  
        ShellExecute(hwnd,"open","d:\\temp.txt",NULL,NULL,SW_SHOWNORMAL);   //hwnd是有效的窗体句柄  
            OR  
        ShellExecute(hwnd,"open","c:\\windows\\notepad.exe","d:\\temp.txt",NULL,SW_SHOWNORMAL);  
   
  HINSTANCE   ShellExecute(  
          HWND   hwnd,  
          LPCTSTR   lpOperation,  
          LPCTSTR   lpFile,  
          LPCTSTR   lpParameters,  
          LPCTSTR   lpDirectory,  
          INT   nShowCmd);  
   
  1。打开指定的文件  
        ShellExecute(hwnd,"open","d:\\temp.txt",NULL,NULL,SW_SHOWNORMAL);   //hwnd是有效的窗体句柄  
            OR  
        ShellExecute(hwnd,"open","c:\\windows\\notepad.exe","d:\\temp.txt",NULL,SW_SHOWNORMAL);  
   
  2。显示指定的文件夹  
        ShellExecute(hwnd,"open","d:\\",NULL,NULL,SW_SHOWNORMAL);  
  3   用windows的explorer(资源管理器)打开指定的文件夹  
        ShellExecute(hwnd,"explore","d:\\",NULL,NULL,SW_SHOWNORMAL);Top

5 楼cloudfog(阿荣)回复于 2002-05-24 15:19:36 得分 0

^_^,我已经知道了,谢谢各位!给分罗Top

相关问题

  • vb调用vc编的activex
  • vb调用vc++的dll
  • vc调用vb的dll
  • 怎么扬在程序中调用exe程序,vb好像是shell,vc?
  • VC中调用VB生成的DLL(java调用VB的DLL)
  • VB中调用shell程序(.bat)
  • 谁知道VC下如何调用VB中调用的activex dll
  • vb可以调用的dll如何让vc调用。
  • vb调用vc的DLL问题
  • 如何在vb中调用vc的DLL

关键词

  • 应用程序
  • 信息
  • null
  • shellexecute
  • 指定
  • shownormal
  • 加载
  • sw
  • createprocess
  • winexec

得分解答快速导航

  • 帖主:cloudfog
  • lant
  • FlyingSch

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo