1. 程式人生 > >c++執行cmd指令、cmd隱藏程序不出現控制檯、結束程序、呼叫exe、CreateProcess以及WinExec的使用

c++執行cmd指令、cmd隱藏程序不出現控制檯、結束程序、呼叫exe、CreateProcess以及WinExec的使用

需求分析:

我們在呼叫外部的exe時會彈出控制檯黑框,而我們不想在軟體中出現這個黑框,修改軟體屬性為窗體也不起作用。呼叫如何結束也是我們要解決的一個問題。

知識點:

1.如執行cmd命令

在C++中執行cmd指令的種方法:
1

system("指令");//會出現黑框,指令完成後進行之下程式碼

2
WinExec("指令",SW_NORMAL);//不會出現黑框,但是無論指令是否完成,都會進行之下程式碼

3) 

STARTUPINFO si = { sizeof(si) };   
PROCESS_INFORMATION pi;   
si.dwFlags = STARTF_USESHOWWINDOW;   
si.wShowWindow = TRUE;   
TCHAR cmdline[] =TEXT("指令");  
BOOL bRet = ::CreateProcess (NULL,cmdline,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);     
下面的程式碼會等待指令完成之後再進行之下程式碼
WaitForSingleObject(pi.hProcess, INFINITE);

2.如何結束程序

首先開啟cmd.exe,輸入tasklist,如下圖,找出你需要結束的程序名字


然後輸入taskkill /f /t /im exe名字
string exe = "taskkill /f /t /im ffmpeg.exe";
WinExec(exe.c_str(), SW_HIDE);