如何确定程序是否使用DirectX,如果是,DirectX表面大小是多少?

Eri*_*ngs 5 c# directx screenshot

我正在使用Spazzarama的 Direct3DHook来捕获应用程序的屏幕截图(目的是通过Internet传输它们).虽然这在应用程序使用DirectX时效果很好,但如果应用程序不使用DirectX(例如记事本),则会失败.

  1. 如何确定正在运行的应用程序(进程)是否使用DirectX?原因是在这种情况下,我需要使用不同的方式来捕获屏幕,例如使用GDI +.
  2. 当此DirectX应用程序未以全屏模式运行时,如何获得DirectX表面的大小?例如,当我捕获以窗口模式运行的游戏的屏幕时,应用程序大小也包括窗口框架的大小等,并且我捕获的屏幕通常太大.