//打开指定exe程序,并传递命令行参数SHELLEXECUTEINFO ShExecInfo;
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;
ShExecInfo.hwnd = this -> m_hWnd;
ShExecInfo.lpVerb = _T("open");
//输入要调用的exe文件路径
ShExecInfo.lpFile = _T("qr_scan.exe");
//传入命令行参数数据
ShExecInfo.lpParameters = _T("test"); //若没有命令行参数,可为NULL
//------------------exe文件在当前路径下(可忽略)--------------
//获取当前程序路径
TCHAR exeFullPath[200];
GetModuleFileName(NULL,exeFullPath,100);
//获取程序运行当前路径
TCHAR drive[100],dir[100],fname[100],ext[20];
_wsplitpath(exeFullPath,drive,dir,fname,ext);
CString dirPath;
dirPath.Format(_T("%s%s"),drive,dir);
//------------------------------------------------------------
ShExecInfo.lpDirectory = dirPath;//这里exe的目录可忽略,写为NULL
ShExecInfo.nShow = SW_HIDE;//这里设置为不显示exe界面,若设置为SW_SHOW,则可以显示exe界面
ShExecInfo.hInstApp = NULL;
//调用exe程序
ShellExecuteEx(&ShExecInfo);
//关闭该exe程序
if( ShExecInfo.hProcess != NULL)
//等待程序运行完毕
WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
//关闭程序
TerminateProcess(ShExecInfo.hProcess,0);
ShExecInfo.hProcess = NULL;
//打开指定exe程序,并传递命令行参数SHELLEXECUTEINFO ShExecInfo;ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;ShExecInfo.hwnd = this -> m_hWnd;ShExecInfo.lpVerb = _T("op
假如
Shell
Execute
Ex
()没有
执行
正确,GetLastError 会帮助您找到问题所在。假如
Shell
Execute
Ex
执行
正确,那么这个函数会返回TRUE.
要关闭一个程式,我们能够通过FindWindow()找到这个窗口,然后向窗口发送关闭消息,就能够了。问题就在于怎样找到正确的窗口。
在
MFC
程序
中,可以用以下几种方法来获取命令行参数。为方便说明,我们假设
执行
了命令:C:\test\app.
exe
-1 -2方法一::GetCommandLine();将获取到 "C:\test\app.
exe
" -1 -2
方法二for (int i=0;i<__argc;i++){__argv[i];将依次得到C:\test\app.
exe
-1 -2}
方法三AfxGetA...
转自:http://blog.csdn.net/bao_qibiao/archive/2009/09/07/4528860.aspx
一.
MFC
中获取命令行参数的几种方法
下面转载自 http://www.qingfengju.com/article.asp?id=92
及http://blog.csdn.net/geeeeeeee/archive/2008/12/13/3510195.aspx
在
MFC
程序
中,可以用以下几种方法来获取命令行参数。
为方便说明,我们假设
执行
了命令:C:/tes
1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改。
2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息。
3 Java学习书推荐:《java编程思想》
4 在VC下
执行
DOS命令
a. system("md c:\\12");
b. Win
Exe
c("Cmd.
exe
/C md c:\\12"
可用用GetCommandLine得到命令行字符串
CWinApp *thisApp = AfxGetApp();
CString sCmdLine = thisApp->m_lpCmdLine;
?
MFC
ODBC将ODBC API封装在类CDatabase、CRecordSet、CField
Ex
change、CRecordView和CDB
Ex
ception中
? 使用
MFC
ODBC开发数据库应用
程序
的一般步骤
? 使用AppWizard访问数据库
? 使用类CDatabase连接数据库
? 使用类CRecordSet打开记录集、获取数据
其中,
SHELL
EXECUTE
INFO是一个结构体类型,包含了一些启动外部
程序
所需的参数,如
程序
路径、命令行参数等等。这个函数可以在Windows操作系统中使用,它会将
程序
或文件的
执行
交给操作系统来处理,具体表现为打开一个关联
程序
或文件的默认应用
程序
。
该函数的返回值为BOOL类型,如果函数
调用
成功,它会返回TRUE,否则返回FALSE。你可以使用GetLastError()函数来获取具体的错误代码,以便进行错误处理。
这个函数的用途广泛,例如在编写
程序
时可以使用它来打开一个文档或者启动一个外部
程序
。