Articles of 进程

防止subprocess在c#中显示shell窗口

我正在使用ffmpeg编译video,而且我想阻止它在执行操作时显示控制台。 以下是我如何启动ffmpeg: ProcessStartInfo si = new ProcessStartInfo(); si.Arguments = string.Format("-y -loop 1 -t " + DucationToString(frameDuration) + " -r 25 -f image2 -i \"{0}\" \"{1}\"", item.Value, otpt); si.FileName = "ffmpeg"; si.UseShellExecute = false; Process.Start(si).WaitForExit(); 无论我在ProcessStartInfo尝试的设置如何,控制台总是显示出来。 如何防止在创buildsubprocess时显示控制台?

将FFMPEG的输出redirect到Windows上的多个命名pipe道

我正试图在Windows上将video和audio数据stream式传输到两个单独的命名pipe道中。 ffmpeg.exe -f dshow -i video="My camera name":audio="My microphone name" -map 0:1 -ac 1 -f f32le \\.\pipe\audioStream -map 0:0 -f mjpeg \\.\pipe\videoStream 问题是,FFMPEG似乎不了解输出\\.\pipe\audioStream和\\.\pipe\videoStream是pipe道,并将它们视为文件。 如果在FFMPEG启动时已经创build了pipe道,它会覆盖它们并失败。 否则,它会抱怨path不存在并失败。 据我所知,指定pipe:协议应该做的伎俩,但我不知道如何正确使用它,即使只有一个pipe道。 我努力了: pipe:pipeName pipe:pipe\pipeName pipe:\\.\pipe\pipeName pipe://pipeName pipe://pipe\pipeName pipe://\\.\pipe\pipeName 我总是以相同的结果:输出写入控制台而不是pipe道。 如果FFMPEG启动时pipe道已经存在,则没有任何东西连接到pipe道。 是否有可能在Windows上使用命名pipe道使用FFMPEG? 如果是,那么这样做的正确方法是什么?

winapi:CreateProcess但隐藏进程的窗口?

我正在使用CreateProcess来创build一个cmd.exe进程,它传递一个参数,它将执行并退出,这使得命令提示符在屏幕上闪烁。 我试图通过将STARTUPINFO结构wShowWindow设置为SW_HIDE来避免这种情况,但此参数似乎影响调用窗口,而不是执行进程的窗口。 有无论如何,你可以使用createprocess启动一个隐藏的视图的程序? 另外什么是适当的WINAPI标准的方式来获得环境variables?

有没有办法在32位计算机上执行64位程序?

只是一个简单的问题:有没有办法在32位机器上运行64位Windows环境下编译的程序(使用mingw64)? 任何DLL或任何兼容层,我可以使用?

我怎样才能从C程序调用notepad.exe?

我已经写了一个时间表程序在C #include<stdio.h> #include<conio.h> void main() { int i=0; int selection; char day[20]; char sub1[20]; char sub2[20]; char sub3[20]; FILE *fp; fp=fopen("aa.txt","w"); textcolor(5); textbackground(3); clrscr(); while(i<3) { printf("Enter the day "); scanf("%s",day); printf("Enter the period 12.30-1:30 "); scanf("%s",sub1); printf("Enter the period 1.35-2.40 "); scanf("%s",sub2); printf("Enter the period 2.45-3.50 "); scanf("%s",sub3); fprintf(fp,"\n %s TIMETABLE IS AS FOLLOWS\n",day); […]

我如何知道在Windows下使用Java下的文件有哪些进程?

我们有一个使用Java编写的计划任务,在Windows平台上失败,因为有时需要删除的文件仍在使用中。 有没有办法从Java内部,我可以看到什么进程正在使用一个文件,并得到他们的信息? 我想我会补充说,如果有必要,我愿意使用JNA或JNI,并且我认为这将是。

在java(w).exe进程列表中查找.jar的名称

在我的公司环境中,这个脚本可以在大量的计算机上运行,​​而且我偶尔会要求用户杀死,因为它会不时被锁住。 我正在想办法自己杀死它。 我注意到我可以使用pslist远程列表,然后用pskill杀死它。 现在的问题是,当有人运行多个Java应用程序(例如Eclipse,这个应用程序,另一个java.exe应用程序…)时,要在pslist中杀死正确的应用程序变得非常棘手,看起来像这样: javaw 4214 .. … javaw 5000 .. … 等等。 这些是不同的应用程序,但它们都从javaw.exe运行。 有没有办法find他们正在运行的.jar的名称,所以我可以根据这个杀死进程?

如何从外部进程将数据写入现有进程的STDIN?

我正在寻找从外部进程向现有进程的STDIN写入数据的方法,并发现了类似的问题如何将数据stream式传输到来自Python中不同本地/远程进程的程序的STDIN中? 在stackoverlow中。 在这个线程中,@Michael说我们可以像下面那样获取现有进程的文件描述符,并允许在Linux上写入数据。 /proc/$PID/fd/ 所以,我创build了一个下面列出的简单脚本来testing从外部进程向脚本的STDIN (和TTY )写入数据。 #!/usr/bin/env python import os, sys def get_ttyname(): for f in sys.stdin, sys.stdout, sys.stderr: if f.isatty(): return os.ttyname(f.fileno()) return None if __name__ == "__main__": print("Try commands below") print("$ echo 'foobar' > {0}".format(get_ttyname())) print("$ echo 'foobar' > /proc/{0}/fd/0".format(os.getpid())) print("read :: [" + sys.stdin.readline() + "]") 这个testing脚本显示STDIN和TTYpath,然后等待一个写它的STDIN 。 我启动了这个脚本,在下面得到消息。 Try commands […]

在Windows上运行任意subprocess,仍然干净地终止?

我有一个应用程序A,我希望能够调用configuration文件中用户指定的任意其他进程。 批处理脚本B是一个用户希望被A调用的进程.B设置一些环境variables,显示一些消息并调用编译器C来做一些工作。 Windows是否为任意进程提供了一个标准的方法来干净地终止? 假设A在控制台中运行并收到CTRL + C。 它可以传递给B和C吗? 假设A在窗口中运行,并且用户试图closures窗口,它可以取消B和C吗? TerminateProcess是一个选项,但不是一个很好的select。 如果A在B上使用TerminateProcess,C继续运行。 如果C是长时间运行的,这可能会导致讨厌的问题,因为我们可能会启动另一个C实例来操作相同的文件,而C的第一个实例仍然在秘密工作。 此外,TerminateProcess不会导致干净的退出。 GenerateConsoleCtrlEvent听起来不错,当一切都在控制台中运行时,可能会工作,但文档说只能将CTRL + C发送到您自己的控制台,所以如果A在窗口中运行,将无法帮助。 在Windows上有没有和SIGINT等价的东西? 我很想find这样的文章: http : //www.cons.org/cracauer/sigint.html for Windows。

确定64位与32位Windows

我想configurationvisual studio 2005复制.dll的基础上是否在构build过程中的操作系统是64位或32位。 我不想指定平台目标是什么。 我第一次尝试使用batch file来查找Windows版本,但一些32位和64位版本的Windows共享相同的版本号。 任何人都知道有任何方法来检查这个? 谢谢!