如何使用 C++ 使用 VLC 播放器 运行 视频文件
How to run a Videofile using VLC player Using C++
#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 播放器 window 仍然无法 close.How关闭 VLC 播放器 window?
请post提出宝贵意见
使用选项--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");
您需要:
- 使用
EnumProcesses()
:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682629(v=vs.85).aspx 获取当时所有进程ID运行
- 对上面列表中的每个进程调用
OpenProcess()
并获得 HANDLE
:http://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
- 如果您设法获得
HANDLE
调用 GetModuleBaseName()
并获得进程名称:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683196(v=VS.85).aspx
- 检查名称,如果在这种情况下找到目标进程 "vlc",请调用
TerminateProcess()
:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=VS.85).aspx
这只是一种方式...
使用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。
#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 播放器 window 仍然无法 close.How关闭 VLC 播放器 window?
请post提出宝贵意见
使用选项--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");
您需要:
- 使用
EnumProcesses()
:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682629(v=vs.85).aspx 获取当时所有进程ID运行
- 对上面列表中的每个进程调用
OpenProcess()
并获得HANDLE
:http://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx - 如果您设法获得
HANDLE
调用GetModuleBaseName()
并获得进程名称:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683196(v=VS.85).aspx - 检查名称,如果在这种情况下找到目标进程 "vlc",请调用
TerminateProcess()
:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=VS.85).aspx
这只是一种方式...
使用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。