winapi 相关问题

Windows API(以前称为Win32 API)是可用于Microsoft Windows操作系统的核心应用程序编程接口集。此标记用于使用Windows API开发本机Windows应用程序的问题。

Windows 中多显示器设置的每个屏幕都有不同的壁纸

我正在使用: ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "图片文件", 0) 想要更换壁纸。 但我想知道是否有...

回答 2 投票 0

Eventlog:EventWrite 未将数据写入 EventLog

我正在尝试使用“EventWrite”将EventData(类似C 结构)写入应用程序事件日志。 我没有看到任何日志写入EventLog(应用程序) 我正在使用下面的 sprovider.mc 文件

回答 1 投票 0

如何在 Windows 中将麦克风输入的音频数据与自定义 PCM 数据混合?

如何在 Windows 中使用 WASAPI 或类似 API 将来自 Windows 中麦克风的音频数据混合到输入流中,无需虚拟设备或自定义驱动程序?

回答 1 投票 0

Win32 - 等待到达/接收新 HID 功能报告的通知

我目前正在开发一个为 USB 键盘配置 RGB 照明的应用程序。键盘遵循 HID(人机接口设备)规范,允许通过 HID 进行定制...

回答 1 投票 0

是否可以在不重新编译的情况下更改exe的图标?

我有很多编译过的可执行文件(很久以前),其中许多我现在没有源代码。但是当我编译它们时,我没有为它们放置任何图标,所以它们看起来都一样...

回答 5 投票 0

DirectX 直方图效果不会产生输出图像,局部边界矩形为 { 0, 0, 0, 0 }

我想演示直方图效果,但输出为空我尝试过软件类型和硬件类型渲染目标,但结果是相同的。我也尝试过确保效果...

回答 1 投票 0

获取 IcmpSendEcho 函数错误代码的错误字符串

我正在delphi中使用icmp ping的实现。现在,我尝试获取人类可读的错误消息,以防设备无法访问,以便我可以将其打印在错误日志中。 你能请...

回答 1 投票 0

使用Win32 API渲染事件,使用API打印的时间与事件查看器不同

ullTimeStamp = pRenderedValues[EvtSystemTimeCreated].FileTimeVal; ft.dwHighDateTime = (DWORD)((ullTimeStamp >> 32) & 0xFFFFFFFF); ft.dwLowDateTime = (DWORD)(ullTimeStamp & 0xFFFFFFFF);

回答 1 投票 0

如何创建带有图标的Win32 API菜单项?

我尝试使用 Win32 API 将图标添加到 Windows 应用程序中的菜单项,但该图标未显示。我已按照 Win32 API 文档中的说明进行操作,但它是...

回答 1 投票 0

Windows 上的 OpenGL ICD 如何加载 OpenGL 1.0 和 1.1 函数?

最近我一直在研究OpenGL图形驱动程序(ICD)如何在Windows上实现OpenGL运行时(opengl32.dll)调用的OpenGL函数。 我知道我可以使用 GetProcAddress ...

回答 1 投票 0

如何使用 Microsoft Print to PDF 获取生成的 PDF 文件的文件名

我基本上使用“Microsoft Print to PDF”打印机来打印文本。效果很好,生成的 PDF 文件没有任何问题。 不过我想得到完整的拍...

回答 1 投票 0

如何在Python中获取CPU温度?假设我有 Windows 32 位

我尝试过使用sensor_Temperatures()来使用psutil库,但它给了我一个AttributeError。这是我的代码: 导入 psutil 打印(psutil.sensors_温度()) --------------------------...

回答 2 投票 0

如何在WM_KEYDOWN中吃键

我正在编辑框中处理 WM_KEYDOWN 消息。 我正在处理一堆键,但对于某些键(例如选项卡),我想阻止可显示字符附加到编辑框。 ...

回答 3 投票 0

CreateFileW 由于路径无效而失败

我正在尝试使用用户输入的路径创建一个具有 GENERIC_WRITE 权限的文件。 为了获取用户输入,我使用 fwgets 函数。 无效 DoCreateFile() { SIZE_T sAlloc = sizeof(WCHAR) * (

回答 1 投票 0

如何在混合环境中获取Entra ID(Azure AD)登录的用户信息?

我们一直在使用 NetGetAadJoinInformation() 函数来获取 Windows 11 AAD 加入工作站上当前登录的用户信息(用户电子邮件)。 但是,在混合环境中 - Entra ID / 本地 AD...

回答 1 投票 0

使用ghostscript打印PDF时如何去除背景灰色?

我的任务是使用Windows操作系统和Python打印PDF文件。因此,当我通过 HP 打印机打印时,我会得到该 PDF 的精确副本,但背景为灰色。 我使用 PyFPDF 生成 PDF...

回答 1 投票 0

如何从PreOperationCallback获取句柄信息?

我目前对反作弊开发感到好奇,并且正在尝试和编写内核驱动程序。我发现 OB Register Callbacks 可以让你拦截句柄创建,并且

回答 1 投票 0

FormatMessage 返回一个 char*,每个字符之间包含空值...为什么?

翻译错误消息时,我返回一个指向字符串(pMsgBuf)的指针,如下所示 pMsgBuf =“这是……” 该消息存在,但由空值分隔。它的g...

回答 1 投票 0

如何控制EventLog事件中的文本

我试图在 C++ 应用程序中使用 EventLog 进行作弊。我没有消息文件;我只是按顺序使用 RegisterEventSource() 和 ReportEvent() 。 #包括 #包括 我试图在 C++ 应用程序中使用 EventLog 进行作弊。我没有消息文件;我只是按顺序使用 RegisterEventSource() 和 ReportEvent()。 #include <windows.h> #include <stdio.h> int main() { LPCWSTR pInsertStrings[1] = { NULL }; HANDLE hEventLog = RegisterEventSource(NULL, L"AaaAaa"); if (NULL == hEventLog) exit(0); Sleep(200); // This event uses insert strings. pInsertStrings[0] = L"Test event from AaaAaa"; ReportEvent(hEventLog, EVENTLOG_INFORMATION_TYPE, /*cat*/ 100, /*evId*/ 0, /*uId*/ NULL, /*msgs*/ 1, /*msgSz*/ 0, (LPCWSTR*)pInsertStrings, /*data*/ NULL); } 几乎一切都按预期进行。该事件会在事件日志中弹出,并包含我在调用 ReportEvent() 时发送的所有内容。 但是,我在通话中发送的文本字符串仅显示在 Details 弹出窗口的 Event Properties 窗格中。 我怎样才能便宜地将此文本放入General窗格中? 我知道调用 dwEventID 中的参数 ReportEvent() 控制着 General 窗格中的文本。但我知道可以通过其他方式控制此文本,但仍然不受消息文件的复杂性的影响。 你怎么能做到? 下面的程序显示了针对该问题的建议解决方案。该程序不使用 WINAPI 来访问事件日志,而是使用 .NET 函数。 #using <system.dll> #using <mscorlib.dll> #include <winsock2.h> using namespace System; using namespace System::Diagnostics; int main() { String^ sSource = gcnew String("TestLog"); String^ sLog = gcnew String("Application"); String^ sEvent = gcnew String("Sample event message from EvenLogTest"); try { if (!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource, sLog); } catch (Exception^ e) { MessageBox(nullptr, L"Run this program once as Administrator", L"EventLogTest", MB_OK | MB_SYSTEMMODAL | MB_ICONERROR); exit(0); } EventLog::WriteEntry(sSource, sEvent); } 该程序展示了完整的测试解决方案。第一次执行时,程序会在注册表中注册日志TestLog。此操作需要管理员权限。如果程序不是由管理员启动的,则会在 MessageBox 中显示相应的消息并退出。第一次管理员执行后的程序执行不需要任何权限,用于将更多事件插入日志中。 要在 Visual Studio 中编译此程序,属性->配置属性->高级->公共语言运行时支持必须设置为.NET Framework Runtime Support (/clr)。 因此,编译器使用 C++ 的 Common Language 版本,而不是本机 C++。这可能会导致 CLR 和本机 C++ 的混合并导致冲突。例如,#include <iostream> 会生成非致命编译错误,其功能最好用 .NET 函数替换。 由于语言复杂性以及需要管理员运行一次,建议的解决方案比原始程序更复杂。优点是它可以控制事件的 General 窗格中的文本。相比之下,原始程序要简单得多,但事件文本仅在 Details 窗格中可见,而 General 窗格显示一些难以控制的标准文本。

回答 1 投票 0

您能否将相同的指针传递给 SystemTimeToTzSpecificLocalTime 以用于输入和输出?

这是SystemTimeToTzSpecificLocalTime的函数原型: BOOL SystemTimeToTzSpecificLocalTime( [输入,可选] const TIME_ZONE_INFORMATION *lpTimeZoneInformation, [在]常量

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.