问题标签 [winapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7465 浏览

c++ - 在调试器下运行时,AssignProcessToJobObject 失败并出现“拒绝访问”错误

你这样做AssignProcessToJobObject了,它会因“拒绝访问”而失败,但只有在你在调试器中运行时才会失败。为什么是这样?

0 投票
9 回答
80406 浏览

c - 什么是特权指令?

我添加了一些可以干净编译的代码,并且刚刚收到此 Windows 错误:

我即将开始寻找错误,我期待它是我所做的一些愚蠢的事情,它恰好产生了这个消息。代码编译干净,没有错误或警告。EXE 文件的大小已增长到 1,454,132 字节,并包含指向 的链接ODCS.lib,但它是 Win32 API 的纯 C 语言,带有 DEBUG(在 Windows 2000 上的 P4 上运行)。

0 投票
2 回答
1054 浏览

winapi - 如何以编程方式确定 Win32 中光驱的功能

我正在尝试创建一个部署工具,该工具将根据系统上的硬件安装软件。我希望该工具能够确定光驱是刻录机(以确定是否应该安装刻录软件)还是可以读取 DVD(以确定是否应该安装播放器)。我尝试使用以下代码

但它总是以 CD-ROM 响应

0 投票
5 回答
1323 浏览

winapi - 如何让系统托盘(通知区域)图标接收 WM_MOUSEWHEEL 消息?

我想扩展我制作的现有应用程序,通过在通知区域图标上滚动来设置混音器音量。

据我所知,通知区域没有收到任何 WM_MOUSEWHEEL 消息,但我仍然找到了一个完全符合我想要实现的应用程序(http://www.actualsolution.com/power_mixer)。使用 WinspectorSpy,我注意到应用程序的表单收到了一些奇怪的消息:0x000003d0 和 0x000003d1,但我没有找到关于它们的参考。

有谁知道我如何实现所需的功能?

0 投票
3 回答
237 浏览

winapi - 如何找出应用程序占用了多少地址空间并将其报告给用户?

我正在为一个应用程序编写内存管理器,作为一个由二十多名编码人员组成的团队的一员。我们的内存配额用完了,我们需要能够看到发生了什么,因为我们似乎只使用了大约 700Mb。我需要能够报告它的去向——碎片化等。有什么想法吗?

0 投票
2 回答
17022 浏览

c# - 多个键盘和低级挂钩

我有一个系统,我有多个键盘,并且真的需要知道击键来自哪个键盘。解释设置:

  1. 我有一台普通的 PC 和 USB 键盘
  2. 我有一个带有一些硬键的外部 VGA 屏幕
  3. 硬键映射为标准 USB 键盘,发送有限数量的键码(F1、F2、Return、+ 和 -)

我有一个低级钩子(在 C# 中,但实际上调用 Win32 功能),即使我的应用程序没有聚焦,它也能够处理输入。

问题是,当使用普通键盘时,一些映射的键码被外部屏幕上驱动的应用程序拾取。外部屏幕发送并用于确认的按键之一是 VK_RETURN。除非我可以识别“设备”并对其进行过滤,否则用户可能正在执行操作并在他们甚至没有看的屏幕上确认它们。

我怎么知道哪个键盘负责按键?

0 投票
4 回答
3315 浏览

c++ - Windows API 间谍/劫持技术

我有兴趣使用 API 间谍/劫持来实现我正在从事的项目的一些核心功能。在这个问题中也提到了它,但这并不是真正的话题,所以我认为最好有一个自己的问题。,

我想尽可能多地收集关于这方面的信息、不同的技术/库(MS DetoursIAT patching)或其他建议。

此外,如果有人有任何使用此类技术的实际生产经验,这将特别有趣——它们是否可以足够稳定以用于生产代码,或者这是否是一种严格的研究技术?它是否可以在多个版本的 Windows 上正常工作?它有多容易出错?

个人经验和外部链接都受到赞赏。

0 投票
1 回答
313 浏览

winapi - How to protect yourself against shell DLLs loaded into your process?

When you use a standard Windows "file open" dialog using GetOpenFileName(), the shell will load various DLLs that it requires to display the file list, including custom ones.

In my application, I found that the DLL that TortoiseCVS uses to draw overlays on the icons was calling GdiPlusShutdown(), and so some time after displaying a "file open" dialog, the TortoiseCVS DLL would be unloaded, it would shut down GDI+ and my graphics functions would all fail!

It seems quite bad that basically any old DLL could be loaded by my application at any time and start doing random things to its state. The workaround in my case was quite simple - just restart GDI+ if I detect that it's been shut down. However had this happened on a client's machine where I couldn't debug it, it would have been a lot more challenging to figure out what was going on.

Can anybody offer any insight? What could I do to stop this from happening?

0 投票
1 回答
378 浏览

security - 为什么欢迎屏幕中缺少我以编程方式创建的用户?

我有一个使用Microsoft 建议的NetUserAdd() API创建 Windows 用户帐户的程序。用户创建成功,我可以以该用户身份登录。

但是,在 Windows XP 上,欢迎屏幕中缺少新创建的用户。如果我禁用欢迎屏幕,我可以通过直接输入用户名以新用户身份登录。

我创建的帐户的什么属性导致它从欢迎屏幕中被忽略?

0 投票
3 回答
1709 浏览

c - 如何拦截编辑框中的粘贴事件?

如何拦截编辑框中的粘贴事件,可能在值传输到对象之前?