草庐IT

c++ - 如何杀死 Chrome 嵌入式框架子进程?

在PC游戏中,我有用于新闻、虚拟货币商店和社交网络的游戏内浏览器。它是用ChromiumEmbeddedFramework的全新更新构建的。问题是当我打开一个浏览器窗口(网站在那里工作正常)然后关闭时,对于某些网站,CEF子进程没有完成。我也可能会继续听到音频,例如,如果是Youtube视频。我使用离屏渲染,不创建其他原生窗口,只创建子进程。为了关闭浏览器窗口,我删除了对CefBrowser的所有引用并调用:m_browser->GetHost()->CloseBrowser(true);我还尝试了其他方法来关闭/销毁/完成渲染子进程,例如在关闭前加载“about:blank”,但这无

python - 在 Windows 中处理 unicode 子进程环境的正确方法是什么?

以这个示例片段为例。importsubprocessimportosenv=os.environ.copy()env["FOO"]=u"foo"subprocess.check_call(["ls","-l"],env=env)在Windows上,这会失败。C:\Python27\python.exetest.pyTraceback(mostrecentcalllast):File"test.py",line7,insubprocess.check_call(["ls","-l"],env=env)File"C:\Python27\lib\subprocess.py",line535,

c# - 防止子进程在 C# 中显示 shell 窗口

我正在使用ffmpeg编译视频,我想阻止它在执行操作时显示控制台。这是我启动ffmpeg的方式:ProcessStartInfosi=newProcessStartInfo();si.Arguments=string.Format("-y-loop1-t"+DucationToString(frameDuration)+"-r25-fimage2-i\"{0}\"\"{1}\"",item.Value,otpt);si.FileName="ffmpeg";si.UseShellExecute=false;Process.Start(si).WaitForExit();无论我在Proce

c++ - 如何正确使用文件映射并将数据传递给子进程?

我的应用程序正在执行另一个进程(“update.exe”),我想将大数据(可能是一条记录)从我的应用程序传递到更新程序。使用命令行传递数据参数不是一种选择,因为数据太大(而且数据大小可能会有所不同)。如何正确创建CreateFileMapping/MapViewOfFile/UnmapViewOfFile,然后执行我的update.exe,终于在update.exe程序(OpenFileMapping)中接收到数据,并释放所有句柄(来自主应用程序和update.exe)所以我没有内存/句柄泄漏?代码会很好(请不要使用JCL)。C++也很好。谢谢。编辑:我认为我的主要问题是如何在upda

windows - 一起使用 gevent 和 multiprocessing 与子进程通信

问题:我可以在Windows上以高效的方式将多处理模块与gevent一起使用吗?场景:我有一个基于gevent的Python应用程序在Windows上执行异步I/O。该应用程序主要受I/O限制,但也有更高CPU负载的峰值。此应用程序需要通过其标准输入和标准输出来控制控制台应用程序。我无法修改此控制台应用程序,用户将能够使用他自己的自定义应用程序,只有基于文本(行)的通信协议(protocol)是固定的。我有一个使用子进程和线程的工作实现,但我宁愿将整个基于子进程的通信代码与这些线程一起移动到一个单独的进程中,以将主应用程序变回单线程。我计划为此使用多处理模块。预读:我经常在网上搜索并阅

windows - VC++获取子进程的环境变量

好的,这基本上就是我正在尝试做的事情。我有一个过程P1.此过程需要调用VisualStudio命令行编译器cl.exe在一个单独的过程中P2(明显地)。但是,正如曾经使用过VisualStudio命令行编译器的每个人都知道的那样,您不能简单地调用cl.exe。并期待良好的体验。您必须先运行批处理脚本%VSXXXCOMNTOOLS%\vsvars32.bat(其中XXX是VisualStudio版本号)。此脚本设置编译器使用的一些关键环境变量(例如用作包含路径的内容)。使用批处理脚本,这非常容易做到:call"%VS110COMNTOOLS%\vsvars32.bat"...clFoo.

c++ - 选择子进程继承哪些句柄

当使用WindowsAPI在C++中创建子进程时,可以允许从父进程到子进程的句柄继承。在Microsoft示例中"CreatingaChildProcesswithRedirectedInputandOutput",将子进程的标准输入/输出重定向到父进程创建的管道,必须允许继承才能使用重定向管道。我正在开发一个小型演示类,它启动一个外部可执行文件,读取输出,然后将其返回给调用者(调用者将返回的输出记录到一个文件中)。我正在尝试构建一个超时功能,它只会在对child调用TerminateProcess()并继续生活之前阻塞一定的时间。但是,我发现通过允许句柄继承,子进程也有输出文件的句柄

windows - 带有子进程的perl警报

我有一个perl脚本,它运行一系列用于回归测试的批处理脚本。我想在批处理脚本上实现超时。我目前有以下代码。my$pid=openCMD,"$cmd2>&1|";eval{#setupthealarmlocal$SIG{ALRM}=sub{die"alarm\n"};#alarmonthetimeoutalarm$MAX_TIMEOUT;log_output("settingalarmto$MAX_TIMEOUT\n");#runourexewhile(){$$out_ref.=$_;}$timeRemaining=alarm0;};if($@){#catchthealarm,killt

python - "WindowsError: [Error 206] The filename or extension is too long"使用子进程多次运行程序后

我的python程序在WindowsHPC2008环境中准备输入、运行外部FORTRAN代码并处理输出。它工作得很好,除非代码在1042-1045次之间执行外部程序(通常问题会更早收敛)。在这些情况下,我得到一个异常(exception):WindowsError:[Error206]Thefilenameorextensionistoolong但是,文件名的路径不会随时间增长。它只是清理目录并再次运行。代码如下:inpF=open(inName)outF=open(localOutName,'w')p=subprocess.Popen(pathToExe,shell=False,st

windows - 如何将窗口句柄传递给子进程?

我正在从事一个设计不寻常的特殊项目。在我的应用程序/进程中,我将创建一个子进程来做一些工作。在我的流程中,我需要从子流程中获得反馈。我想将我的应用程序/进程的Windows句柄传递给这个子进程,所以我从这个子进程发布消息。如何将窗口句柄传递给子进程?我的子进程是一个命令行应用程序,没有WindowUI,主要功能如下:intAPIENTRY_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow)我应该将窗口句柄传递给主函数吗?怎么办?谢谢 最佳答案