草庐IT

mono-stdout

全部标签

c++ - 如何正确读取子进程的 stdout/stderr 输出?

我编写了一个程序a.exe,它启动了我编写的另一个程序b.exe,使用CreateProcess功能。调用者创建两个管道并将两个管道的写入端传递给CreateProcess作为stdout/stderr句柄以用于子进程。这实际上与CreatingaChildProcesswithRedirectedInputandOutput相同MSDN上的示例确实如此。因为它似乎无法使用等待进程退出的同步调用或stdout或stderr上的数据可用(WaitForMultipleObjects函数不在管道上工作),调用者有两个线程正在运行,它们都执行(阻塞)ReadFile调用stdout/stde

windows - Windows 上 Vb.net VS2005 应用程序的 Mono 最小运行时间?

有谁知道,或者有文章或分步教程的链接,可以告诉我如何以最少的安装量分发.netMONO应用程序?Mono的完整包大约有75MB,但我知道其中很多是我不需要的编译器和库。我只想要最少的运行时文件。我需要为简单的“HelloWorld”WinForms应用分发哪些文件?我尝试只删除文件,直到我想出了一些可行的方法,但它只适用于安装了Mono的机器。这是我试过的文件我为我的应用程序创建了一个目录。在该目录中我创建了另外两个目录\bin\lib\mono\2.0在\mono\lib\mono\2.0我放了mscorlib.dll文件在\bin目录中,我放置了以下内容Accessibility.

c - stdout 上的 freopen_s 导致 Windows 上的 GetConsoleScreenBufferInfo 出现问题

要临时将stdout重定向到一个文件,我正在做:printf("Before");freopen_s(&stream,"test.txt","w",stdout);printf("During");freopen_s(&stream,"CONOUT$","w",stdout);printf("After");这行得通,但是这样做:CONSOLE_SCREEN_BUFFER_INFOsbi={0};GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&sbi);似乎不再有效。它返回false,GetLastError()返

windows - Node console.log 行为和 Windows stdout

尝试在Windows中从node.js脚本重定向输出时,我注意到了奇怪的行为。此行为的最小可重现示例如下:从Windows控制台(cmd.exe):c:\>node-econsole.log('hello')hello来自Powershell:PSC:\>node-econsole.log('hello')PSC:\>也就是说,它没有向控制台写入任何内容就退出了。这是个问题,因为当我尝试将输出重定向到文件时,没有任何内容被写入,例如node-econsole.log(123)>temp.txt正在创建一个名为temp.txt的空文件。有没有关于Node如何将console.out写入s

c# - Mono Gtk# 无法编译初学者教程

我正在尝试让Mono和Gtk#在Windows上运行。当我尝试运行mcshello.cs-r:"C:\ProgramFiles(x86)\Mono\lib\gtk-sharp-2.0\gtk-sharp.dll"我收到以下错误:hello.cs(11,9):错误CS0012:类型Atk.Implementor'在未引用的程序集中定义。考虑添加对程序集的引用atk-sharp,Version=2.12.0.0,Culture=neutral,PublicKeyToken=35e10195dab3c99f'C:\ProgramFiles(x86)\Mono\lib\gtk-sharp-2.

windows - 我用什么来读取子进程的 STDIN/写入 STDOUT?

我有一个从STDIN读取并输出到STDOUT的可执行文件。我需要一个Perl脚本,它将这个可执行文件作为子进程派生并写入该子进程的STDIN,并从STDOUT读取。这是Windows所必需的。有什么想法或建议吗? 最佳答案 perlfaq8HowcanIopenapipebothtoandfromacommand? 关于windows-我用什么来读取子进程的STDIN/写入STDOUT?,我们在StackOverflow上找到一个类似的问题: https://

c# - 为什么重定向标准输入会导致 stdout 不打印到新的控制台进程?

所以我试图运行一个单独的程序,使用Process.Start().程序会偶尔暂停,等待输入。我希望能够通过标准输入向此进程发送信息。我试图理解使用Windows操作系统外壳创建新进程与重定向标准输入的影响之间的区别。ExeUseShellRedirectSTDINWINDOWDisplaysOutputDisplayscmd.exe/cprogramYNYYNNYYNYYNprogram.exeYNYYNNYYNYYN重要的信息是,如果我重定向标准输入,那么屏幕上不会显示任何数据。为什么会这样?通常program.exe应该写入其stdout文件描述符。我假设Process.Start

c# - 使用 Mono 和 C# 监听系统范围内的点击?

我想使用mono编写一个简单的CL工具来记录系统中的每一次点击。我知道我可以从Windows窗体访问它吗?哪个类似于内部WindowsAPI的包装器?抱歉,这是一个真正愚蠢的问题,但来自JS背景,它只是AddEventListener,这有点令人困惑,或者记录不当。谢谢 最佳答案 您正在寻找的是user32.dll这里有一些关于它的链接:http://pinvoke.net/default.aspx/user32.GetAsyncKeyStatehttps://msdn.microsoft.com/en-us/library/win

c++ - 如何在 Windows 中访问继承的匿名管道 HANDLE,而不是 stdout、stderr 和 stdin?

我正在尝试通过Windows中的匿名管道从子进程接收数据。我知道如何使用标准I/O流来执行此操作,但这些被用于其他目的。我也知道如何在Linux或OSX中使用fork()、pipe()和execv()执行此操作。在Windows中,您可以使用CreatePipe()创建管道,并使用SetHandleInformation()使一端不可继承。然后,对于stdout和stderr,您可以将STARTUPINFO和hStdOutput或hStdError设置为CreateProcess()以传递另一端给child。在调用CreateProcess()之后,父级最接近它的是子级管道末端的句柄。

python - 子进程,从 STDOUT 读取时重复写入 STDIN (Windows)

我想从python调用外部进程。我正在调用的进程读取输入字符串并给出标记化结果,然后等待另一个输入(如果有帮助,二进制是MeCab标记器)。我需要通过调用此过程来标记数千行字符串。问题是Popen.communicate()工作但在给出STDOUT结果之前等待进程结束。我不想继续关闭和打开新的子流程数千次。(而且我不想发送整个文本,将来很容易超过数万行。)fromsubprocessimportPIPE,PopenwithPopen("mecab-Owakati".split(),stdin=PIPE,stdout=PIPE,stderr=PIPE,close_fds=False,un