Javascript 如何将quit命令发送到当前的ffmpeg.exe 我不想使用taskkill.exe、/MIN、/C、/B,而是想退出这个ffmpeg进程 我阅读了有关CMDOW的内容,但在system32目录中未找到CMDOW.exe。 那么,如何在运行ffmpeg进程的同一窗口中发送quit命令呢?
将Windows XP service pack 2与Firefox 12配合使用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
谢谢..这并不简单-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);