2016-08-17 102 views
0
#include<Windows.h> 

#include<direct.h> 


    int main() 
{ 
    _chdir`("C:\\Program Files (x86)\\VideoLAN\\VLC"); 
    system("vlc C:\\Users\\Documents\\Wildlife.wmv"); 

    return 0; 
} 

通過使用上面的代碼我是能夠成功使用VLC播放器來運行視頻,但作爲視頻播放完畢,仍然是VLC播放器窗口沒有得到close.How運行關閉VLC播放器窗口?如何使用錄像檔案VLC播放使用C++

請發表您的寶貴建議

+0

你嘗試了什麼,它是如何失敗的?你看過https://support.microsoft.com/en-us/kb/307395嗎? – bigahega

+0

我沒有找到任何解決方案來關閉它。 –

回答

1

使用CreateProcess傳遞正確的命令行。看下面的例子。請注意使用\"分隔符。

#include <Windows.h> 

int main() 
{ 
    const char *appname = "c:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe"; 
    const char *filename = "c:\\files\\my file.wav"; 

    STARTUPINFOA si; 
    PROCESS_INFORMATION pi; 
    memset(&si, 0, sizeof(si)); 
    si.cb = sizeof(si); 
    memset(&pi, 0, sizeof(pi)); 

    char buf[MAX_PATH + 300]; 
    wsprintfA(buf, "%s \"%s\" --play-and-exit", appname, filename); 
    CreateProcessA(0, buf, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); 

    return 0; 
} 

使用Unicode如果這是一個正確的Windows程序。

+0

謝謝@巴馬克 –

2

使用選項--play-and-exitvlc://quit,即

system("vlc file:///C:\\Users\\Documents\\Wildlife.wmv --play-and-exit");

system("vlc file:///C:\\Users\\Documents\\Wildlife.wmv --vlc://quit");

如果你想使用其他系統調用來終止它,在Windows上試試這個:

system("taskkill /im vlc.exe");

+0

你好@Daniel,謝謝!但我需要的是我應該可以在任何時候關閉窗口 –

+0

@MukeshPareek呃......爲什麼?我不明白...你可以手動關閉窗口...並且你也可以通過使用選項'--stop-time'設置一個停止時間 – Daniel

+0

我明白@ Daniel,但是我想關閉它只有一個電話 –

1

您需要:

  1. 獲取使用EnumProcesses()當時正在運行的所有進程ID:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682629(v=vs.85).aspx
  2. 呼叫OpenProcess()在以上列表中的每個過程,並得到了HANDLEhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
  3. 如果您設法獲得HANDLE致電GetModuleBaseName()並獲取進程名稱:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683196(v=VS.85).aspx
  4. 檢查名稱,如果你發現你的目標進程在這種情況下「VLC」,呼籲TerminateProcess()http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=VS.85).aspx

這僅僅是一種方式......