(C++)后台运行一个swf文件,不显示flash player窗口

基本的思路是这样的:

1、使用WinAPI CreateProcess 创建一个进程,进程运行flash player,并且参数指定运行哪个swf文件。

2、在参数中指定该进程不显示窗口。

具体的做法如下(C++):

STARTUPINFO si;   
ZeroMemory( &si, sizeof(si) );
//隐藏进程窗口
si.cb = sizeof(STARTUPINFO);
//以下两上值一定要一起设置,具体原因查看MSDN
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;

PROCESS_INFORMATION pi;
ZeroMemory( &pi, sizeof(pi) );

TCHAR *flashplayer=GetFlashPlayerPath();
TCHAR *robotfile=GetRobotFilePath();
TCHAR args[MAX_PATH]=_T("-swf ");
wcscat_s(args,robotfile);
//flashplayer: c:/flashplayer.exe
//robotfile: -swf c:/test.swf

if (!CreateProcess(flashplayer,args, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi))
{
TCHAR str[MAX_PATH];
swprintf(str, MAX_PATH, _T("CreateProcess failed (%d)\n"), GetLastError());
AfxMessageBox(str);
}

 

想关闭该进程请打开任务管理器关闭,或者调用系统API:

TerminateProcess(pi.hProcess,0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);




你可能感兴趣的:(Flash)