这个可执行文件是命令行形式执行的,有一些参数需要跟在可执行文件后输入,我该怎么调用啊?而且,在程序执行后,会有一些信息显示在屏幕上,我该如何屏蔽它们?谢谢
解决方案 »
- installshield如果制作双语言安装程序
- 这些天总有人在VC群中问如何安装VC6
- 劳驾各位帮我推荐几本书
- VC7中怎样加入Web服务引用?
- 为什么listctrl不显示数据,我这样写代码。。。
- 请问我用VC建立了一个控件,在控件中使用了Timer但是我在VB中调用就出错为什么?
- CEdit类支持动态创建吗?
- 请推荐VC例子书作入门
- 一个有关于打印的问题:从扫描仪器获得一张图片1200*1200那么在1024*768的显示器上肯定是不能完全显示的,但我在打印时设置打印机的分辩率
- 老问题:vc++如何读取boot.ini?
- button 的问题?
- 转义字符的问题,怎么在字符串中包含%?郁闷的等待中。。。。
memset(&shellExecuteInfo, 0, sizeof(shellExecuteInfo));
shellExecuteInfo.cbSize = sizeof(shellExecuteInfo);
shellExecuteInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shellExecuteInfo.hwnd = NULL;
shellExecuteInfo.lpVerb = TEXT("open");
shellExecuteInfo.lpFile = L"appman.exe";
shellExecuteInfo.lpParameters=L" -s Apps :MSCONTACTS tpcutil.dll AMContacts";
shellExecuteInfo.nShow = SW_SHOW;
if (!ShellExecuteEx(&shellExecuteInfo))
return 0; // couldn't start Contacts, nothing to do ...
lstrcat(szCmd,szFile);
lstrcat(szCmd," >> NUL");
ShellExecute(0,0,szFile,szCmd,0,SW_HIDE)
excute DOS command
del <executable-path> >> NUL
in background,hide from user!
要调用其它的应用程序可以调用以下三个函数:1、UINT WinExec( LPCSTR lpCmdLine, // command line UINT uCmdShow // window style);
2、HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd );3、CreateProcess( LPCWSTR lpszImageName, LPCWSTR lpszCmdLine, LPSECURITY_ATTRIBUTES lpsaProcess, LPSECURITY_ATTRIBUTES lpsaThread, BOOL fInheritHandles, DWORD fdwCreate, LPVOID lpvEnvironment, LPWSTR lpszCurDir, LPSTARTUPINFOW lpsiStartInfo, LPPROCESS_INFORMATION lppiProcInfo);
WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式。后一个参数值得说一下,比如用 SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,比如Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。ShellExecute较 WinExex灵活一点,可以指定工作目录。例如:ShellExecute(NULL,NULL,_T("readme.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)
就是直接打开 c:\temp\readme.txt,而不用加载与 txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme.txt,就是这么作的。
CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的例子:
STARTUPINFO stinfo
//启动窗口的信息
PROCESSINFO procinfo //进程的信息
CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo)其它参数的使用请参看MSDN有关文档
隐藏运行test.exe , param 是传递给test.exe 的命令行参数