Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将quit命令发送到当前的ffmpeg.exe 我不想使用taskkill.exe、/MIN、/C、/B,而是想退出这个ffmpeg进程 我阅读了有关CMDOW的内容,但在system32目录中未找到CMDOW.exe。 那么,如何在运行ffmpeg进程的同一窗口中发送quit命令呢?_Javascript_Windows_Batch File_Cmd_Xul - Fatal编程技术网

Javascript 如何将quit命令发送到当前的ffmpeg.exe 我不想使用taskkill.exe、/MIN、/C、/B,而是想退出这个ffmpeg进程 我阅读了有关CMDOW的内容,但在system32目录中未找到CMDOW.exe。 那么,如何在运行ffmpeg进程的同一窗口中发送quit命令呢?

Javascript 如何将quit命令发送到当前的ffmpeg.exe 我不想使用taskkill.exe、/MIN、/C、/B,而是想退出这个ffmpeg进程 我阅读了有关CMDOW的内容,但在system32目录中未找到CMDOW.exe。 那么,如何在运行ffmpeg进程的同一窗口中发送quit命令呢?,javascript,windows,batch-file,cmd,xul,Javascript,Windows,Batch File,Cmd,Xul,将Windows XP service pack 2与Firefox 12配合使用 谢谢..这并不简单-Firefox没有任何内置功能,这意味着您需要使用这些功能并直接调用Win32 API函数。描述如何获取应用程序的顶级窗口,然后向其发送WM_退出消息。这种方法实际上是有效的: Components.utils.impotresource://gre/modules/ctypes.jsm; var userlib=ctypes.openuser32; var HWND=ctypes.voidp

将Windows XP service pack 2与Firefox 12配合使用


谢谢..

这并不简单-Firefox没有任何内置功能,这意味着您需要使用这些功能并直接调用Win32 API函数。描述如何获取应用程序的顶级窗口,然后向其发送WM_退出消息。这种方法实际上是有效的:

Components.utils.impotresource://gre/modules/ctypes.jsm; var userlib=ctypes.openuser32; var HWND=ctypes.voidptr\t; 变量UINT=ctypes.uint32\u t; var WPARAM=ctypes.uint16\u t; var LPARAM=ctypes.uint32\u t; var LRESULT=ctypes.uint32\u t; var DWORD=ctypes.uint32\u t; var WNDENUMPROC=ctypes.FunctionTypectypes.stdcall\u abi, ctypes.bool, [HWND,LPARAM].ptr; var WM_CLOSE=0x0010; var EnumWindows=userlib.declare EnumWindows,ctypes.winapi_abi, ctypes.bool, WNDENUMPROC,LPARAM ; var GetWindowThreadProcessId=userlib.declare GetWindowThreadProcessId,ctypes.winapi_abi, 德沃德, HWND,DWORD.ptr ; var IsWindowVisible=userlib.declare IsWindowVisible,ctypes.winapi_abi, ctypes.bool, HWND ; var SendMessage=userlib.declare SendMessageW,ctypes.winapi_abi, 勒索, HWND、UINT、WPARAM、LPARAM ; var callback=WNDENUMPROCfunctionhWnd,lParam { var procId=DWORD; GetWindowThreadProcessIdhWnd,procId.address; 如果procId.value==pid&&IsWindowVisiblehWnd SendMessagehWnd,WM_CLOSE,0,0; 返回true; }; 枚举窗口回调,0; userlib.close;
我对此进行了测试,可以成功地关闭一个记事本窗口,如果文本没有保存,通常会出现警告,因此这是一个干净的关机。但是,在您的情况下,问题可能是您没有直接运行ffmpeg,而是通过命令行shell运行—因此您将关闭可能不会终止ffmpeg的命令行窗口。我想您必须尝试一下,如果它不起作用,您可能必须查看窗口的标题,而不是它的进程ID,这显然是一种不太可靠的方法。

我想告诉您,但我想您希望完全关闭应用程序?@Wladimir Palant-是的,我不想使用kill,因为它可能会影响我的输出,我需要一些退出进程或关机的东西。
 var fpath="C:\\TVT_"+cur_date+"_"+cur_time+".avi";

 Components.utils.import("resource://gre/modules/FileUtils.jsm");

 var env = Components.classes["@mozilla.org/process/environment;1"]
                .getService(Components.interfaces.nsIEnvironment);
 var shell = new FileUtils.File(env.get("COMSPEC"));

 var args = ["/c", "cd.. & cd.. & C: & cd C:/ffmpeg/bin & record.bat "+fpath];

 var process = Components.classes["@mozilla.org/process/util;1"]
                 .createInstance(Components.interfaces.nsIProcess);
 process.init(shell);
 process.runAsync(args, args.length);