草庐IT

c++ - 如何在 VC++ 中获取 WPF 应用程序的屏幕截图?

如何在VC++中获取WPF应用程序的屏幕截图?在VC++中,我有一个WPF应用程序窗口的HWND。使用GDIPrintWindow的传统方法在WPF应用程序上无法正常工作(当WPF呈现缓慢时出现黑屏)。还有其他方法可以将WPF应用程序的屏幕截图作为HBITMAP吗? 最佳答案 会GetDC&BitBlt为GDI+方案更改任何内容?? 关于c++-如何在VC++中获取WPF应用程序的屏幕截图?,我们在StackOverflow上找到一个类似的问题: https:

c++ - 在 C++ (Win32) 中快速获取 Windows 应用程序屏幕截图的方法?

当我的应用程序需要获取其他Windows应用程序的屏幕截图时,我遇到了问题。我正在使用win32api'PrintWindow'中的函数,但效果不佳。它很慢,其他应用程序窗口中的一些组件显示为黑色矩形。Devrexster有一个名为DExpose2的应用程序(Mac-OS风格的任务切换器)。它可以非常快速地获取其他应用程序的屏幕截图,非常快,甚至可以连续获取这些屏幕截图。我猜它是使用Direct3D来获取应用程序的屏幕截图,而不是像我正在使用的那样使用GDI。是否可以为此目的使用Direct3D?如果可能,哪种方法最简洁? 最佳答案

windows - Windows 上的屏幕尺寸(以英寸为单位)

我正在开发一款在iOS和台式机(Windows、Mac、Linux)上运行的多平台游戏。我希望游戏能够根据屏幕分辨率以英寸调整某些UI元素的大小。这个想法是,如果一个按钮在任何界面中应该有1/2英寸左右的宽度,它将自动缩放到该大小。现在,对于iOS设备,使用暴力破解技术可以很好地解决这个问题。您可以查找设备类型并使用硬编码表来确定每个设备的屏幕尺寸(以英寸为单位)。不是最优雅的解决方案,但足够了。台式机是棘手的。我希望和希望存在一种机制,(某些?)监视器可以通过该机制向操作系统报告它们以英寸为单位的实际屏幕尺寸。如果该机制存在并且我可以以某种方式访问​​它,我至少可以获得一些监视器的好

c++ - 当屏幕分辨率高于 1920x1080 时捕获视频

我正在尝试编写一个使用MediaFoundation的Win32c++程序,用于捕获mp4桌面视频。我发现在屏幕分辨率超过1920x1080的PC上,捕获失败。失败是在调用SetInputMediaType之后()返回错误0xc00d36b4(为媒体类型指定的数据无效、不一致或不受此对象支持)有什么解决办法吗?HRESULTInitializeDirect3D9(IDirect3DDevice9**ppDevice,IDirect3DSurface9**ppSurface,UINT32&uiWidth,UINT32&uiHeight){IDirect3D9*d3d=NULL;d3d=D

c++ - 捕获屏幕的替代方法? (C++, Windows 操作系统)

keybd_event(VK_SNAPSHOT,0x45,KEYEVENTF_EXTENDEDKEY,0);keybd_event(VK_SNAPSHOT,0x45,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);HBITMAPh;OpenClipboard(NULL);h=(HBITMAP)GetClipboardData(CF_BITMAP);CloseClipboard();...通常这很好用。但如果前景窗口发生变化并锁定剪贴板,则它无法打开剪贴板。是否有任何替代方法来捕获屏幕-也可以在后台工作-?谢谢, 最佳答案

windows - 强制窗口重绘整个屏幕

我目前正在使用GDI绘制图形,但我需要能够重绘整个桌面/屏幕。我的图形绘制在屏幕上,但是当我移动绘制的像素时,它会变成一条线,因为我没有重绘屏幕(Windows不是)。我需要一些东西来强制它重绘整个屏幕,我尝试了以下方法:UpdateWindow(GetDesktopWindow());InvalidateRect(GetDesktopWindow(),NULL,TRUE);SendMessage(GetDesktopWindow(),WM_PAINT,NULL,NULL);它们似乎都不起作用,我只需要重绘整个屏幕。 最佳答案 如果

windows - 从 Windows 禁用打印屏幕键盘选项

有没有什么办法可以关闭打印屏幕键盘上的按钮(当然不会破坏它的关键)。我正在使用Windows7。我需要它,因为它增加了我的数据库的安全性,该数据库很少被员工使用。 最佳答案 如果您操纵扫描码映射注册表项,则可以禁用任何项。可以找到一个带有设置说明的小教程here(更详细的扫描码图解释here)。特别是对于打印屏幕键,您可以创建一个新的文本文件,其中包含:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboa

windows - 在使用 get-content 回显到屏幕时,如何启用 powershell 来解释 ansi 颜色代码?

我有一个日志文件,其中包含各种文本周围的ansi颜色代码。我正在使用powershell语言命令将它回显到控制台:get-contentlogfile.log-wait所以我可以看到最新的日志变化。但是,所有ansi颜色代码都显示为文本字符,例如:Esc[90mEsc[39m如何在powershell窗口中将它们解释为颜色代码?还不太熟悉powershell语言,是否有powershell命令或编码选项来处理这个问题?我已经阅读了各种powershell文档,但没有在其中找到任何关于这些ansi代码的内容。 最佳答案 您可以通过在E

c++ - 将屏幕截图位图转换为内存中的 jpeg

我想截取整个屏幕的屏幕截图,并想通过网络将其发送到服务器。(服务器将是保存它的那个)我目前正在使用此代码HBITMAPhBitmap=CreateCompatibleBitmap(hScreen,w,h);CImageimage;image.Attach(hBitmap);image.Save(L"screen.jpg");它确实保存了文件,但这不是我想要的。我也不确定如何获取字节,我在考虑GetBits()但文档说它是指向底层位图数据的指针。我想要得到的是我可以通过网络发送并使用服务器保存图像的JPG数据。那么,为什么我不直接使用位图并直接发送呢?因为它有点复杂而且代码很长,你必须得

c# - 如何让两个按钮与通用 Windows 平台共享一半的应用程序屏幕宽度

我试图通过构建UWP应用程序让两个按钮在VisualStudio的相对面板布局中共享相同的宽度,但似乎无法找到资源或任何东西来告诉我如何做到这一点。任何人都可以帮助我或给我一些资源吗?请不要在没有建议的情况下降级这个问题。 最佳答案 虽然@al1Dima提供的Grid解决方案也是有效的,但这是一个使用RelativePanel的解决方案 关于c#-如何让两个按钮与通用Windows平台共享一半的应用程序屏幕宽度,我们在StackOverflow上找到一个类似的问题: