在vc里怎样执行一个DOS命令,或者批处理

在vc里怎样执行一个DOS命令,或者批处理


在c语言里可以用system()系统调用来处理

:批处理 
ShellExecute(null, "open ", 
        "c:\\abc.bat ", " ", " ",SW_SHOW   ); 


      


深入浅出ShellExecute   
译者:徐景周(原作:Nishant   S) 

Q:   如何打开一个应用程序?   ShellExecute(this-> m_hWnd, "open ", "calc.exe ", " ", " ",   SW_SHOW   ); 
或   ShellExecute(this-> m_hWnd, "open ", "notepad.exe ", 
        "c:\\MyLog.log ", " ",SW_SHOW   ); 
正如您所看到的,我并没有传递程序的完整路径。 
Q:   如何打开一个同系统程序相关连的文档?   ShellExecute(this-> m_hWnd, "open ", 
        "c:\\abc.txt ", " ", " ",SW_SHOW   ); 
Q:   如何打开一个网页?   ShellExecute(this-> m_hWnd, "open ", 
        "http://www.google.com ", " ", " ",   SW_SHOW   ); 
Q:   如何激活相关程序,发送EMAIL?   ShellExecute(this-> m_hWnd, "open ", 
        "mailto:[email protected] ", " ", " ",   SW_SHOW   ); 
Q:   如何用系统打印机打印文档?   ShellExecute(this-> m_hWnd, "print ", 
        "c:\\abc.txt ", " ", " ",   SW_HIDE); 
Q:   如何用系统查找功能来查找指定文件?   ShellExecute(m_hWnd, "find ", "d:\\nish ", 
        NULL,NULL,SW_SHOW); 
Q:   如何启动一个程序,直到它运行结束?   SHELLEXECUTEINFO   ShExecInfo   =   {0}; 
ShExecInfo.cbSize   =   sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask   =   SEE_MASK_NOCLOSEPROCESS; 
ShExecInfo.hwnd   =   NULL; 
ShExecInfo.lpVerb   =   NULL; 
ShExecInfo.lpFile   =   "c:\\MyProgram.exe ";
ShExecInfo.lpParameters   =   " ";
ShExecInfo.lpDirectory   =   NULL; 
ShExecInfo.nShow   =   SW_SHOW; 
ShExecInfo.hInstApp   =   NULL;
ShellExecuteEx(&ShExecInfo); 
WaitForSingleObject(ShExecInfo.hProcess,INFINITE); 
或:   PROCESS_INFORMATION   ProcessInfo;   
STARTUPINFO   StartupInfo;   //This   is   an   [in]   parameter 
ZeroMemory(&StartupInfo,   sizeof(StartupInfo)); 
StartupInfo.cb   =   sizeof   StartupInfo   ;   //Only   compulsory   field 
if(CreateProcess( "c:\\winnt\\notepad.exe ",   NULL,   
        NULL,NULL,FALSE,0,NULL, 
        NULL,&StartupInfo,&ProcessInfo)) 
{   
        WaitForSingleObject(ProcessInfo.hProcess,INFINITE); 
        CloseHandle(ProcessInfo.hThread); 
        CloseHandle(ProcessInfo.hProcess); 
}     
else 
{ 
        MessageBox( "The   process   could   not   be   started... "); 
} 

Q:   如何显示文件或文件夹的属性?   SHELLEXECUTEINFO   ShExecInfo   ={0}; 
ShExecInfo.cbSize   =   sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask   =   SEE_MASK_INVOKEIDLIST   ; 
ShExecInfo.hwnd   =   NULL; 
ShExecInfo.lpVerb   =   "properties "; 
ShExecInfo.lpFile   =   "c:\\ ";   //can   be   a   file   as   well 
ShExecInfo.lpParameters   =   " ";   
ShExecInfo.lpDirectory   =   NULL; 
ShExecInfo.nShow   =   SW_SHOW; 
ShExecInfo.hInstApp   =   NULL;   
ShellExecuteEx(&ShExecInfo); 

你可能感兴趣的:(在vc里怎样执行一个DOS命令,或者批处理)