c - 如何将程序的控制台输出存储在文本文件中?

标签 c winapi gtk glib

好的,所以我的 gui 程序依赖于另一个第三方控制台程序来显示 pdf 上的信息。控制台程序将 pdf 的文件名作为参数并显示信息。我将显示的信息存储在文本文件中。我的 gui 程序然后读取文本文件并将其显示在编辑窗口中。为了将显示的信息存储在文本文件中,现在我正在使用系统调用:

 infodisplayer filename.pdf >> info.txt

它将输出存储到“info.txt”中,然后我的 gui 程序会读取它。现在这会显示一个恼人的控制台窗口,因为它需要一个命令处理器。我不想显示控制台窗口。那么有没有什么方法可以使用 WinApi 、 Glib 、 Gtk+ 或 C 标准库将控制台程序的输出存储在文本文件中,这样我就不必求助于系统调用了?谢谢。

抱歉,我知道我没有很好地描述我的问题,但我正在做的是: Logic

最佳答案

下面的程序应该可以解决问题。顺便说一句,这个程序使用 Windows API。

HWND hWnd = FindWindow(null, "Console Window title here");

if (hWnd != NULL)
 {
      ShowWindow(hWnd, 0); // 0 = SW_HIDE               
 }

您可以将此代码块放在Timer 事件中以经常检查控制台窗口是否存在。或者更好的是你可以使用这个:

char MyCommand[]="cmd.exe /c infodisplayer filename.pdf >> info.txt"; 
int res = CreateProcess(NULL, MyCommand , NULL, NULL, FALSE, CREATE_NO_WINDOW ,
                        NULL, NULL, &StartInfo, &ProcInfo);
if (res)
{

   WaitForSingleObject(ProcInfo.hThread, INFINITE);

}

关于c - 如何将程序的控制台输出存储在文本文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005362/

相关文章:

c - 打印一些浮点值有什么问题?

c - 在 C 中使用宏清除缓冲区是个坏主意吗?

c - 关于将 getchar() 返回值存储在 char 变量中

c++ - 如何使用visual c++在win32 API中添加图片框

c - 我如何在for循环中用4递增一个变量

user-interface - 如何在 Windows GUI 中绘制垂直文本?

python - 如何在 64 位组件上使用 win32api(或类似的)?

python - 如何使用python代码修改用glade创建的GUI

创建一个简单的 gtk 列表

python - GTK 应用程序中的终端小部件