winapi相关内容

两次调用 CoInitialize()

假设我的应用程序在启动时调用 CoInitialize,在它存在之前调用 CoUninitialize. 假设我的应用程序使用了第 3 方组件并执行类似操作,这会导致某种故障吗? 是否可以在 CoInitialize 已提交调用时调用该调用?第二次通话会失败吗?还是只是“让它通过",因为它已经被调用了. 解决方案 CoInitialize 如果已经在调用线程中初始化,则返回 S ..
发布时间:2022-01-14 12:32:20 其他开发

将清单文件移动到 dll?

我在我的应用程序中使用了第三方组件,该组件作为 COM 组件分发,或者可以使用 .manifest 文件进行引用.无论哪种方式,它都是使用 CoCreateInstance() 加载的.第三方组件所需的文件位于子文件夹中.组件开发人员告诉我在可执行文件的 Visual Studio 2010 设置(在“Manifest"部分)中包含一个 .manifest 文件,并且加载组件没有问题. 现在 ..
发布时间:2022-01-14 12:30:18 C/C++开发

SndVol 如何能够改变给定音频会话的音量?

我正在编写自己的 API 来执行 SndVol 系统实用程序的一些功能.我希望这个 API 的一部分能够设置给定 的音量级别音频会话. SndVol 在“设备"面板上显示一个滑块,用户可以使用该滑块来更改音频设备的主音量级别,并为每个音频会话(在“应用程序"面板上)显示一个滑块来更改音量级别会议: 如果我拖动其中一个音频会话的滑块手柄,则 SndVol 能够更改音频会话的音量级别.它是 ..
发布时间:2022-01-14 12:17:35 C/C++开发

从 execScript(IHTMLWindow2) 返回值

从 IHTMLWindow2::execScript 获取返回值的最佳方法是什么? 我找到了这个链接,http://social.msdn.microsoft.com/Forums/en/ieextensiondevelopment/thread/712db8ec-0ceb-4efa-afe3-590dc6bbb7bf,这个我没试过,这个方法对吗? 问候马诺吉 解决方案 是的, ..
发布时间:2022-01-14 12:10:47 其他开发

Mac 上的 Pywin32(com 对象)

我有一个简短的问题,希望有人能帮助我. 我正在创建/规划一个需要跨平台运行并使用 Windows com 库的应用程序.过去,我使用 win32py 在 python 应用程序中运行这些 com 对象,我一直在做大量研究以在 Mac 上找到解决方案,但我没有运气.理想情况下,我想留在 Python 中,因为我已经有了使用这个库的 Python 2.7 的工作代码.但是,如果有其他语言的解决方 ..
发布时间:2022-01-14 12:10:30 移动开发

如何刷新 Windows 资源管理器

可以更改网络卷的名称. 我把名字改成了Spinal Disk 要更改网络名称,我会这样做 在注册表中写入新名称. 使用 DefineDosDeviceW 等函数附加我的网络卷.在这个时间里,Windows 资源管理器在我的猜测中读取了注册表. SHChangeNotify(SHCNE_DRIVEADD, SHCNF_PATH, root, NULL);//可以肯定. SendM ..
发布时间:2022-01-14 12:08:23 其他开发

如何以编程方式阻止“程序兼容性助手"?在 Vista(和 Windows 7)中出现?

我开发了一个可能使用 adobe flash 的 C++ 程序,虽然它不是必需的. 我使用 CoCreateInstance 创建 flash 对象,如果失败,我知道 flash 没有安装所以我不使用它. 但是,在 Vista 中(我也认为是 Windows 7),当未安装 flash 时,离开应用程序后,“程序兼容性助手"会弹出一条消息,指出“此程序需要缺少 Windows 组件",指定 f ..
发布时间:2022-01-14 12:07:30 其他开发

是否可以有一个进程外 COM 服务器,其中每个对象实例使用一个单独的 O/S 进程?

我有一个遗留的 C++“解决方案引擎",我已经将它包装为一个进程内 COM 对象,供只需要一个单个“解决方案引擎"的客户端应用程序使用. 但是,我现在有一个需要多个“解决方案引擎"的客户端应用程序.不幸的是,底层遗留代码有足够的全局数据、单例和线程恐怖,给定可用资源,不可能同时在进程中拥有多个实例. 我希望某个善良的灵魂可以告诉我一些 COM 魔法,通过翻转几个注册表设置,可以有一个单 ..
发布时间:2022-01-14 12:07:01 C/C++开发

如何获取打开的资源管理器窗口的 PIDL?

我知道如何获取所有打开的资源管理器窗口,使用 Microsoft Internet Controls COM 库.由此,我能够找到 LocationURL 这些窗口.但是,这仅针对文件系统上的路径设置.似乎当 虚拟对象 显示,如网络打印机或回收站,LocationURL 为空.LocationName 似乎仍设置为开始栏上可见的名称. 当设置了 LocationURL 时,这足以让我知道资源 ..
发布时间:2022-01-14 12:05:03 C#/.NET

获取 COM 服务器的进程 ID

我正在通过将 Windows 消息直接发送到 HWND 和调用由自动化应用程序公开的 COM 服务器组合来进行一些自动化操作. 如果有多个实例在运行,我需要能够确定 COM 服务器的进程 ID,以便我可以通过 COM 调用访问同一个实例,作为我向其发送 Windows 消息的实例. 我可以用正在运行的对象表枚举所有正在运行的 COM 服务器并取回所有它们的名字对象,但是 COM 对象本 ..
发布时间:2022-01-14 12:04:22 其他开发

什么是“接口"?MSVC 中的关键字?

我正在查看 Windows 8.1 SDK,在 UnknownBase.h 中看到类似 typedef interface IUnknown IUnknown; 我以前从未见过这个 interface 关键字.请注意,这绝对是一个 .h 标头,由 cl.exe 处理.不是IDL文件,也不是midl.exe处理的. 我在网上找到了这个:http://msdn.microsoft.com/e ..
发布时间:2022-01-14 12:03:59 C/C++开发

如何通过 IDispatch 将 SAFEARRAY 传递给 COM 对象?

我正在尝试调用 COM 对象的方法,其中 记录的 参数之一是 “字节数组".实际声明取决于您正在查看的每种语言的文档: 在 C# 语言中: byte[] TransformFinalBlock(字节[] 输入缓冲区,整数输入偏移,整数输入计数) 使用 C++ 语言; 数组^ TransformFinalBlock(数组^输入缓冲区,整数输入偏移,整数输入计数) VB 语 ..
发布时间:2022-01-14 12:01:44 其他开发

Win32:注册 ActiveX 控件所需的注册表项?

我需要编写调用 DllRegisterServer 时运行的代码.即当有人打电话时: regsvr32 myActiveX.ocx 我正在尝试找到所需注册表项的最终列表(而不仅仅是我可以通过拼写注册表拼凑出来的内容). 到目前为止,我的探险队已经找到了: HKEY_CLASSES_ROOT\MyCoolLibrary.MyCoolControl\Clsid(默认)=“{myClassI ..
发布时间:2022-01-14 12:00:19 其他开发

Win32 确定何时连接/断开键盘

我正在尝试确定我的键盘何时连接或断开.我尝试了以下策略: 注册设备通知 按照 MSDN 在 如何确定在 DirectInput 中断开的键盘.当我尝试这个时,我在窗口回调中得到 DB_DEVNODES_CHANGED 事件,它没有提供其他信息(只是 一些未知 设备已更改连接状态).我尝试了各种 GUID 进行注册:4D36E96B-E325-11CE-BFC1-08002BE10318 ..
发布时间:2022-01-13 23:05:28 C/C++开发

来自 Windows 的低级键盘输入

哪些 win32 调用可用于从 Windows 服务全局检测按键事件(不仅针对 1 个窗口,我希望每次按下按键时都收到一条消息)? 解决方案 你想使用 Win32 Hooks.特别是键盘钩子. 你可以阅读更多关于这里 你想要的钩子类型是 WH_KEYBOARD,你可以通过 Win32 API SetWindowsHookEx 设置它. 基本上,每次在任何应用程序系统范围内 ..
发布时间:2022-01-13 23:05:19 其他开发

GetAsyncKeyState() 导致防病毒程序标记为键盘记录器

我一直在 Windows API 中构建一个非常小的游戏,在主消息循环中,我使用 GetAsyncKeyState() 来测试用户是否按下箭头按钮.我使用它而不是 WM_KEYDOWN 因为使用 WM_KEYDOWN 在第一次按下后会有一个初始暂停,我不想修改用户的设置.我的防病毒程序将游戏标记为键盘记录程序,还有其他方法吗? 解决方案 反病毒程序应该如何猜测你是没有使用 GetAsync ..
发布时间:2022-01-13 22:50:20 其他开发

如何在 C# 中使用 RegisterHotKey()?

我正在尝试注册一个热键,我正在翻译 这个 C++代码转换成C#: 使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;使用 System.Runtime.InteropServices;命名空间 ConsoleApplication1{课堂节目{[DllImport("user32.dll")]公共静态外部bool Regist ..
发布时间:2022-01-13 22:44:36 C#/.NET

键盘的 SendInput() - 仅小写

我有以下代码: INPUT 输入 = { 0 };Input.type = INPUT_KEYBOARD;Input.mi.dwFlags = KEYEVENTF_EXTENDEDKEY;Input.ki.wVk = 'A';//尝试 0x41, ( UCHAR )VkKeyScan( 'A' )发送输入(1,&输入,sizeof(输入)); 但它只生成'a'.如何强制它也生成大写? 谢 ..
发布时间:2022-01-13 22:43:20 其他开发

SendInput() 键盘字母 C/C++

我正在尝试使用 SendInput() 将句子发送到另一个应用程序(记事本),然后按 Enter 键发送它. 任何代码片段?或者帮忙 解决方案 INPUT 输入;字 vkey = VK_F12;//见下面的链接input.type = INPUT_KEYBOARD;input.ki.wScan = MapVirtualKey(vkey, MAPVK_VK_TO_VSC);输入.ki. ..
发布时间:2022-01-13 22:24:43 C/C++开发