2016-08-17 11 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プレーヤーウィンドウは閉じることができません。 VLCプレーヤーのウィンドウを閉じるには?VLCプレーヤーを使用してビデオファイルを実行する方法

あなたはそれを終了するために、別のシステムコールを使用する場合、すなわち、あなたの貴重な提案

+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; 
} 

適切なWindowsプログラムであれば、Unicodeを使用してください。

+0

ありがとう@バーマク –

2

使用オプション--play-and-exitまたはvlc://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

こんにちは@ダニエル、ありがとう!しかし、私が必要とするのは、いつでもウィンドウを閉じることができるはずです –

+0

@MukeshPareek uh ...なぜですか?私はそれを取得しない...手動でウィンドウを閉じることができます...また、 '--stop-time'オプションを使用して停止時間を設定することもできます – Daniel

+0

私は@ Danielを理解していますが、電話のみ –

1

以下を行う必要があります。その上で、リスト内の各プロセスにhttps://msdn.microsoft.com/en-us/library/windows/desktop/ms682629(v=vs.85).aspx

  • コールOpenProcess()をしてHANDLEを得る:

    1. は、すべてのプロセスIDがEnumProcesses()を使用して、その時点で実行されている取得http://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
    2. HANDLEGetModuleBaseName()を呼び出してプロセス名を取得した場合:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683196(v=VS.85).aspx
    3. 名をチェックして、「VLC」、この場合、ターゲット・プロセスを発見した場合は、TerminateProcess()を呼び出す:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=VS.85).aspx

    これはただの方法です...

  • 関連する問題