问题标签 [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 投票
13 回答
137099 浏览

c++ - 在 C++ 中解析 INI 文件的最简单方法是什么?

我正在尝试使用 C++ 解析 INI 文件。关于实现这一目标的最佳方法的任何提示?我应该使用 Windows API 工具来处理 INI 文件(我完全不熟悉)、开源解决方案还是尝试手动解析它?

0 投票
4 回答
7866 浏览

c - FindFirstChangeNotification 是在 Windows 上用于文件系统更改通知的最佳 API 吗?

我是 Windows 编程的新手,我正在尝试获取有关文件系统所有更改的通知(类似于来自 SysInternals 的 FileMon 显示的信息,但通过 API)。每个(非网络、非替代)驱动器的 FindFirstChangeNotification 是我最好的选择,还是有其他更合适的 C/C++ API?

0 投票
4 回答
766 浏览

c++ - CryptEncrypt 的合适替代品

我们的产品中存在这样一种情况,即长期以来,一些数据作为 SQL 字符串(选择 MS SQL 服务器或任何位置的 sybase SQL)存储在应用程序的数据库中,这些数据是通过 Windows API 函数CryptEncrypt 加密的。 (直接且可解密)

问题是 CryptEncrypt 可以在输出中产生 NULL,这意味着当它存储在数据库中时,字符串操作将在某些时候截断 CipherText。

理想情况下,我们希望使用一种算法,该算法将生成不包含 NULL 的 CipherText,因为这将对现有数据库造成最少的更改(将列从字符串更改为二进制以及处理二进制而不是字符串的代码)并且只需在数据库升级时解密现有数据并使用新算法重新加密。

该算法不需要是最安全的,因为数据库已经处于相当安全的环境中(不是开放网络/互网),但确实需要比 ROT13 更好(我几乎可以在脑海中解密现在!)

编辑:顺便说一句,将密文更改为密文的任何特殊原因?密文似乎使用更广泛......

0 投票
4 回答
5576 浏览

c# - 使用 C# 将鼠标单击发送到任务栏中的按钮

在我目前正在处理的应用程序中,要求是将外部应用程序的窗口置于前台。进行 Win32 API 调用(例如 BringWindowToTop 和 SetForeground 窗口)并非始终有效。这是由于 Windows XP 中的一些限制。我想做的是发送模拟鼠标单击任务栏上的窗口按钮,我希望它将窗口带到前面。有谁知道这怎么可能?

0 投票
3 回答
7894 浏览

c# - 在 C# 中从外部应用程序获取 UI 文本

是否可以从 C# 中的外部应用程序获取 UI 文本。

特别是,有没有办法从第三方编写的外部 Win32 应用程序中读取标签(我假设它是普通的 Windows 标签控件)中的 Unicode 文本?文本是可见的,但不能在 UI 中通过鼠标选择。

我假设有一些可访问性 API(例如,用于屏幕阅读器)允许这样做。

编辑:目前正在考虑使用托管间谍应用程序之类的东西,但仍会感谢任何其他线索。

0 投票
5 回答
3448 浏览

c# - FlashWindowEx FLASHW_STOP 仍然使任务栏保持颜色

我正在开发一个控制机器的应用程序。
当我从机器收到错误时,用户应该能够直接注意到它,一种方法是在任务栏上闪烁托盘。当机器清除错误时,托盘应停止闪烁。

使用 FlashWindowEx 函数有一点点烦恼,当我清除窗口的闪烁时,它会保持(在我的情况下为 winXP)橙色(不闪烁)。
状态示例

就我而言,我使用 FLASHW_TRAY 开始闪烁并使用 FLASHW_STOP 停止闪烁。

我做错了什么还是这是 WinXP 的一个已知错误,是否有解决方法?

0 投票
2 回答
19409 浏览

windows - 用于存储对象指针的 GWL_USERDATA 的替代方法是什么?

在我从事的 Windows 应用程序中,我们有一个直接位于 Win32 之上的自定义框架(不要问)。当我们创建一个窗口时,我们通常的做法是通过 将this窗口的用户数据区放入SetWindowLong(hwnd, GWL_USERDATA, this),这使我们可以有一个类似 MFC 的回调或紧密集成的WndProc,取决于。问题是这在 64 位 Windows 上不起作用,因为 LONG 只有 32 位宽。在 32 位和 64 位系统上都可以解决这个问题的更好的解决方案是什么?

0 投票
4 回答
12213 浏览

c++ - 找出哪个进程在 USB 设备句柄上有独占锁

我有一个使用 CreateFile() API 读取/写入 USB 设备的库。该设备恰好实现了 HID 设备配置文件,因此它与 Microsoft 的 HID 类驱动程序兼容。

系统上安装的其他一些应用程序正在以读/写模式打开设备,没有共享模式。这会阻止我的库(以及使用它的任何东西)使用该设备。我想这就是 HID 兼容设备的问题——其他驱动软件(鼠标、控制器、PHIDGETS 等)可能无法合作。

无论如何,设备文件路径的形式为:

我正在尝试使用代码打开它,例如:

我考虑过像 SysInternals 的 FileMon 或 Process Monitor 这样的工具。但我似乎无法让它报告上面列出的设备文件句柄的使用情况。

0 投票
2 回答
667 浏览

c# - 在 Windows 中拖放的通知

我的C#程序有一个文件列表,可以从中拖放到另一个程序中。我的要求是先将文件复制到不同的目录。

那么,是否可以通知我删除操作,以便我只能在操作成功时复制文件?在实际执行复制之前,我宁愿等到我知道需要复制它。

另外,是否有可能知道 drop 操作发生在哪个程序中?理想情况下,我想根据被删除的对象或内容来更改文件路径。

对此的解决方案可以使用任何 .NET 语言或C/C++使用COM.

0 投票
6 回答
205239 浏览

c++ - 如何在 C++ (Unicode) 中将 std::string 转换为 LPCWSTR

我正在寻找将 std::string 转换为 LPCWSTR 的方法或代码片段