如题,在VC中如何调用.EXE文件,越详细越好。谢谢!
解决方案 »
- boost::property_tree::wptree 读取含中文的xml,std::wcout输出正常,但mfc中显示乱码
- 我想做个软件来检测cs服务器的状态,就象HLSW一样的,有没有高手指点一下
- 请教,datagrid的排序功能怎样实现?
- 怎样可以使对话框中的static控件实现透明?
- ADO中连接的问题
- 应该是关于lib的问题吧
- 菜单问题??
- 自定义类的析够出问题了?为什么?(ADO)
- 请问建立空连接 ipc$ 的用户名和密码是多少呀?
- vs2008 mfc程序打包后,mru功能就不能用了。请教??
- VC++中如何做带窗口的Dll,并且如何调用它????
- 请问大虾可否在多文档中应用directx??能否给一些提示?
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
);
/* 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 );
}
{
printf("ok le\n");
}
我刚学C,写得不好,呵呵
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");