收录日期:2020/10/28 14:05:27 时间:2016/05/12 05:44:42 标签:基础类
如题,在VC中如何调用.EXE文件,越详细越好。谢谢!
CreateProcess具体参数我不记得了!
BOOL CreateProcess(
  LPCTSTR lpApplicationName,                 // name of executable module
  LPTSTR lpCommandLine,                      // command line string
  LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
  BOOL bInheritHandles,                      // handle inheritance option
  DWORD dwCreationFlags,                     // creation flags
  LPVOID lpEnvironment,                      // new environment block
  LPCTSTR lpCurrentDirectory,                // current directory name
  LPSTARTUPINFO lpStartupInfo,               // startup information
  LPPROCESS_INFORMATION lpProcessInformation // process information
);

Example
/* EXEC.C illustrates the different versions of exec including:
 *      _execl          _execle          _execlp          _execlpe
 *      _execv          _execve          _execvp          _execvpe
 *
 * Although EXEC.C can exec any program, you can verify how 
 * different versions handle arguments and environment by 
 * compiling and specifying the sample program ARGS.C. See 
 * SPAWN.C for examples of the similar spawn functions.
 */

#include <stdio.h>
#include <conio.h>
#include <process.h>

char *my_env[] =                /* Environment for exec?e */
{
   "THIS=environment will be",
   "PASSED=to new process by",
   "the EXEC=functions",
   NULL
};

void main()
{
   char *args[4], prog[80];
   int ch;

   printf( "Enter name of program to exec: " );
   gets( prog );
   printf( " 1. _execl  2. _execle  3. _execlp  4. _execlpe\n" );
   printf( " 5. _execv  6. _execve  7. _execvp  8. _execvpe\n" );
   printf( "Type a number from 1 to 8 (or 0 to quit): " );
   ch = _getche();
   if( (ch < '1') || (ch > '8') )
       exit( 1 );
   printf( "\n\n" );

   /* Arguments for _execv? */
   args[0] = prog;
   args[1] = "exec??";
   args[2] = "two";
   args[3] = NULL;

   switch( ch )
   {
   case '1':
      _execl( prog, prog, "_execl", "two", NULL );
      break;
   case '2':
      _execle( prog, prog, "_execle", "two", NULL, my_env );
      break;
   case '3':
      _execlp( prog, prog, "_execlp", "two", NULL );
      break;
   case '4':
      _execlpe( prog, prog, "_execlpe", "two", NULL, my_env );
      break;
   case '5':
      _execv( prog, args );
      break;
   case '6':
      _execve( prog, args, my_env );
      break;
   case '7':
      _execvp( prog, args );
      break;
   case '8':
      _execvpe( prog, args, my_env );
      break;
   default:
      break;
   }

   /* This point is reached only if exec fails. */
   printf( "\nProcess was not execed." );
   exit( 0 );
}

CreateProcess或者WinExec
::WinExec("<此处加EXE。的全路径如 c:\\exmple.exe>",1);
main()
{
 printf("ok le\n");
}
我刚学C,写得不好,呵呵
可以用三个函数,都是SDK函数:WinExec,ShellExecute和createprocess,具体参数可以查阅MSDN.
    WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如你用 SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,就不会出现正常的窗体,但是已经被加到任务列表里了。
   ShellExecute较 WinExec灵活一点,可以指定工作目录,下面的Example就是直接打开 c:\temp\1.txt,而不用加载与 txt文件关联的应用程序,
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)
用这个试试
头文件包含#include"stdlib.h"
在程序中用命令  system("***.exe");

dephi6的补丁 我靠,我要投诉:我的帐号密码被盗了 ~~~~~ 高手请进,急急急急急急急急急,再送一百分,不够再加 请问如何在运行EXCEL时 不在任务栏上显示EXCEL按钮 请推荐java学习的书~~ 制作安装程序的问题 有播放MPEG2格式文件的SDK吗? 上海jsp程序员好不好找工作? 我用jsp,servlet,等写好的程序如何用installshelld 打包发布! 帮忙,关于数据存在的问题 今天我的母亲46岁的生日,愿天下的父母都健康长寿!!!!!!!!! 这样得到这样的窗口的地址? 问一个关于的用法!!! 我如何得到当前的活动window 怎样判断一个文件夹是否已经存在? 在VB中如何写这样一个从多表获取数据的SQL语句 请问Tomcat如何配置多站点? 急!急!有没有局域网内,服务器向多个客户机发数据的例子啊! 怎么从一个文本文件中读取内容? 谁能给我RATIONAL XDE试用版的破解方法? 从书上看见一个奇怪的定义,没有见过,请大吓指教~! textarea中自动实现按要求排列?急,解決立马送分.可以另开贴给分,急! 关于equals的问题!!怪得很!!不知道为何出错!!请大虾指教~!! pb可做三层结构吗? 关于下拉框的运用,着急。。。。。(asp.net初学者) select top n * from table order by id desc?为什么不行?php怎么个写法/,正在等待! 请问哪有DirectX7.0 SDK FOR DELPHI下载????? long long way to go... 一个奇怪的定义,请大吓指教~! 注册表的问题?