“PrintWindow”函数的行为是否取决于调用进程的 DPI 感知?
我是一名使用 Python 和 ctypes 库学习 Windows 编程的学生。我有一个关于 PrintWindow 函数与 DPI 感知相关的行为的问题。 我目前正在从事一个项目,该项目涉及使用 PrintWindow 函数捕获游戏窗口的屏幕。我注意到捕获的图像似乎不完整或未正确捕获整个窗口。经过一番研究和讨论,我怀疑这个问题可能与调用进程的 DPI 感知设置有关(就我而言,是 Python 脚本)。 我的问题是:PrintWindow 函数的行为是否取决于调用进程的 DPI…
Windows 开发 | Windows API - Win32

一次性计时器会导致内存泄漏吗?
我创建了一个计时器队列,然后使用以下代码创建了一些一次性计时器: CreateTimerQueueTimer( &mut handle, self.timer_queue, Some(timer_runner), Some(ptr as _), duration.as_millis() as u32, …
Windows 开发 | Windows API - Win32

PerformanceCounterCategory(“GPU 引擎”) GetInstanceNames() System.InvalidOperationException:类别不存在
var category = new PerformanceCounterCategory("GPU Engine"); var counterNames = category.GetInstanceNames() 问题:调用 GetInstanceNames() 会导致 exception:System.InvalidOperationException:Category 不存在,这是因为在 win11…
Windows 开发 | Windows API - Win32

为什么生成desktop.ini会触发CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS?
云过滤器的程序已根据以下 URL 实现。https://learn.microsoft.com/en-us/windows/win32/cfapi/build-a-cloud-file-sync-engine 并配置为按需加载:StorageProviderSyncRootInfo 的 PopulationPolicy 设置为 StorageProviderPopulationPolicy::Full。 创建云文件夹时,SHGetSetFolderCustomSettings…
Windows 开发 | Windows API - Win32

使用 YUV2 或 MPEG 格式不起作用
我正在使用以下程序使用样本抓取器从视频流中捕获帧。当我使用MEDIASUBTYPE_RGB32图像时,图像会显示出来,我可以打开它们。但是,当我使用MEDIASUBTYPE_YUV2或MEDIASUBTYPE_MJPG时,保存的图像无法打开(照片应用程序说不支持这种格式)。有人可以解释一下我如何让它与其他格式一起使用吗?我也不明白为什么 RGB32 在相机甚至没有报告支持它的情况下工作。它仅报告支持 MJPG 和 YUV2。 此问题由: Using YUV2 or MPEG format does…
Windows 开发 | Windows API - Win32

对学习桌面应用程序进行编程的建议
我想了解如何对在 Windows 11 平台上运行的应用程序进行编程。我需要一些书籍的推荐,这些书籍将带我了解构建 Windows 程序的原则和实践。我已经编写了从 shell 运行的 C/C++ 和 Fortran 程序。我发现跳到 Windows GUI 令人困惑。 此问题由: Recommendations To Learn To Program Desktop Apps - Microsoft Q&A总结而来
Windows 开发 | Windows API - Win32

如何使用 DirectX 制作多人游戏
我想使用 Windows 版 DirectX 和 Android 版 OpenGL 制作多人游戏(多设备多人游戏) Note:此问题总结整理于:How I Make Multiplayer Game Using DirectX
Windows 开发 | Windows API - Win32
开发人员技术 | C++
开发人员技术 | Visual Studio | 其他
sleep()函数挂起时间的偏差值会有多大
在CPU占用率非常高的环境中(长期占用率100%)sleep()函数导致的线程挂起时间有没有可能远超设定值,比如期望sleep(30),实际线程挂起超过3秒。
Windows 开发 | Windows API - Win32
社区中心 | 讨论问答网站 | 开始问答
开发人员技术 | C++

用WM_INPUTLANGCHANGEREQUEST消息修改窗口的输入法,在资源管理器上总是会被自动恢复成 ENG
我在用 AHK v2 来使用 SendMessage 来调用 WM_INPUTLANGCHANGEREQUEST 的,我也不是很能确定是不是 WM_INPUTLANGCHANGEREQUEST 本身的问题,还是 AHK 在 SendMessage 上有问题。我在其他语言中(如c++和c#),尚未掌握 hook 键盘快捷键以及使它在后台调用 WindowsApi 的写法,所以我没有能力做这个测试,如果可以的话请大家帮帮忙。内容很简单: #Requires AutoHotkey v2.0 ; Change…
Windows 开发 | Windows API - Win32
如何从 Direct2d 色调映射效果获得最佳效果
通过使用 Windows 桌面复制 API 和 Direct2d,我尝试对 HDR 监视器(每像素 10 位)进行屏幕截图,并在 SDR 色彩空间(每像素 8 位)中创建图像。以前的 API 以 DXGI_FORMAT_R16G16B16A16_FLOAT 格式为我提供数据。从那里,我正在尝试使用 Direct2d 内置的“HDR…
Windows 开发 | Windows API - Win32

如何使用\\?PnP?\Notification,用于获取使用读卡器调用 SCardGetStatusChange API 时的卡状态更改。
我想检测读卡器中的插入/拔出事件,而无需使用 VC++ 轮询。 当我使用 ?SCardGetStatusChange API 中的 PnP?Notification 我得到的结果为 0x80100009 - 无法识别指定的读取器名称,并且 EventState 始终保持 0 另外,有人可以指出一些关于我如何听的示例吗?PnP?Notification 事件并相应地继续 此问题由: how to use \?PnP?\Notification to get the card status change…
Windows 开发 | Windows API - Win32

如何以编程方式将“经过身份验证的用户”添加到本地组策略中的“创建符号链接”?
我想以编程方式将“经过身份验证的用户”添加到“创建符号链接”中,就像在计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 用户权限分配中的本地组策略编辑器中一样。 我找到了 IGroupPolicyObject 接口…
Windows 开发 | Windows API - Win32
ES_DISPLAY_REQUIRED
我正在构建一个 Windows 窗体应用程序,并正在实现线程执行状态ES_DISPLAY_REQUIRED (0x00000002),以防止应用程序处于活动状态时屏幕超时。如果程序由于某种原因崩溃,屏幕会正常超时,还是应该添加保护措施以在崩溃时重置此状态? 谢谢你的帮助。 此问题由: ES_DISPLAY_REQUIRED - Microsoft Q&A 总结而来
Windows 开发 | Windows API - Win32

WinVerifyTrust 缓存
你好 我正在我正在从事的一个项目中使用 WinVerifyTrust 函数。 我想了解这个功能背后的行为是什么。 如果我正确理解,则使用了一些缓存,并且并不总是通过互联网连接检查吊销。 这是真的吗?是否可以知道如何以及何时执行缓存刷新?(基于时间段?) 感谢您的帮助 此致敬意 此问题由: WinVerifyTrust Cache - Microsoft Q&A 总结而来
Windows 开发 | Windows API - Win32

无法通过 SetScrollInfo 设置滚动条的范围
我正在读佩佐尔德先生的书,试图做一个记事本。当插入符号到达工作区的最后一行并按 Enter 键时,我需要设置滚动条的范围(在 nMax 上加 1),但我发现如果我通过 SetScrollInfo 设置滚动条的范围,总是失败,范围永远不会改变,除非我在 SetScrollInfo 之前使用 ShowScrollBar。 以下是可以重现故障的最小代码: #include <Windows.h> LRESULT CALLBACK WndProc(HWND hWnd, UINT…
Windows 开发 | Windows API - Win32

如何使用DirectWrite自定义呈现器呈现下标或上标?
下标和上标渲染不是在DirectWrite中实现的(至少我找不到它),所以我按照这个制作了自己的渲染。虽然这似乎是非法的,但我修改了 DWRITE_GLYPH_RUN 的 fontEmSize 和 glyphAdvances 成员,以模仿上标和下标的结果。但是,这只会将字形向左移动,但该区域的宽度保持不变。修改后的 glyphAdvances…
Windows 开发 | Windows API - Win32

我不能将 HLSL 内部函数用于 DXR,例如:TraceRay() , ReportHit() 等
我的设备支持 DXR。我可以使用一些与光线追踪相关的 HLSL 函数和结构,但有些我不能。编译器对 TraceRay() 给出以下错误: 编译器提供以下错误消息:“未声明函数 'TraceRay(RaytracingAccelerationStructure, int, int, int, int, int, int, RayDesc, HitInfo)'。请帮忙,我已经搜索了很多,但我没有找到任何有同样问题的人。 此问题由: I can’t use HLSL intrinsic functions…
Windows 开发 | Windows API - Win32
Win32:PostQuitMessage(0) 是否会释放该线程中为 win32 控件分配的所有内存?
我正在使用 Win32 桌面应用程序。我正在尝试了解 PostQuitMessage(0) 将如何影响应用程序。 我的文档可以理解的是,PostQuitMessage(0) 函数发布一条WM_QUIT消息,该消息将退出其消息循环并将控制权返回给系统。因此,当我们执行此操作时,谁负责释放该线程中为 Win32 控件分配的所有内存。系统会自动释放还是我们应该处理这个问题? 谢谢 此问题由: Win32 : Will PostQuitMessage(0) release all the memory…
Windows 开发 | Windows API - Win32
如何通过 etw 中 Microsoft-Windows-Kernel-Process 提供的进程启动事件获取命令行?
我在这里(https://learn.microsoft.com/zh-cn/windows/win32/etw/process-typegroup1 ProcessStart 事件的属性具有 CommandLine,因此我尝试使用 logman 来捕获进程的 start 事件。 logman create trace ProcessTest -p…
Windows 开发 | Windows API - Win32
使用 InjectTouchInput 函数时,触摸板(通过 I2C)不工作
我正在尝试使用 InjectTouchInput 函数来模拟触摸板的触摸屏行为。但是,目前在调用 InjectTouchInput 来模拟光标移动时,滑动或单击触摸板(通过 I2C)时没有响应。 模拟运动的代码: 下面是一个示例代码供参考: if (bool_down) { var p2 = getPos(); int…