使用Python 2.7劫持,重定向,显示输出

时间:2011-06-22 19:48:23

标签: python python-2.7 winapi

我是一名经验不足的新程序员,但我正在学习Python 2.7。我使用Python(x,y)或Spydar,因为程序是在Windows 7上调用的。

我使用的主要包是numpypil和可能win32gui

我目前正在尝试编写一个程序来从第三方软件中挖掘信息。这违背了他们的意愿,并且使它变得困难。我正在使用ImageGrab然后使用numpy来获得一些结果。然而,或许我相信,迫使我保持​​我想要阅读的窗口,这不是最佳的。

我想知道是否有办法劫持整个窗口并将输出直接重定向到“虚拟”副本,这样我才能在后台运行它?

在查看win32api的演示时,会有一个名为desktopmanager的脚本。我从来没有让它工作,可能是因为我正在运行Windows 7,它应该创建新的桌面。我真的不知道多个桌面是如何工作的,但如果它们并行运行,可能有一种方法可以在当前窗口周围创建一个新桌面。我不知道怎么回事,到目前为止只是一个想法。

它不适合我的原因并不在于它不是在创建一个新的桌面,而是一旦它被创建,我就无法从它返回。任务栏图标和任务栏本身都会出现。

1 个答案:

答案 0 :(得分:0)

可能有效的一种方法是做类似的事情:

  • 获取窗口句柄(FindWindow()或类似的东西,有几种方法可以做到这一点)
  • 获取窗口尺寸(GetClientRect()或GetWindowRect())
  • 获取窗口的设备上下文(GetWindowDC())
  • 从窗口获取图像数据(BitBlt()或类似的)

您可能需要提升的privelages来访问另一个进程窗口dc,如果是这样,您可能需要将code / dll注入目标进程空间来执行此操作。

HTH。