winapi相关内容
假设我的应用程序在启动时调用 CoInitialize,在它存在之前调用 CoUninitialize. 假设我的应用程序使用了第 3 方组件并执行类似操作,这会导致某种故障吗? 是否可以在 CoInitialize 已提交调用时调用该调用?第二次通话会失败吗?还是只是“让它通过",因为它已经被调用了. 解决方案 CoInitialize 如果已经在调用线程中初始化,则返回 S
..
我在我的应用程序中使用了第三方组件,该组件作为 COM 组件分发,或者可以使用 .manifest 文件进行引用.无论哪种方式,它都是使用 CoCreateInstance() 加载的.第三方组件所需的文件位于子文件夹中.组件开发人员告诉我在可执行文件的 Visual Studio 2010 设置(在“Manifest"部分)中包含一个 .manifest 文件,并且加载组件没有问题. 现在
..
我正在编写自己的 API 来执行 SndVol 系统实用程序的一些功能.我希望这个 API 的一部分能够设置给定 的音量级别音频会话. SndVol 在“设备"面板上显示一个滑块,用户可以使用该滑块来更改音频设备的主音量级别,并为每个音频会话(在“应用程序"面板上)显示一个滑块来更改音量级别会议: 如果我拖动其中一个音频会话的滑块手柄,则 SndVol 能够更改音频会话的音量级别.它是
..
从 IHTMLWindow2::execScript 获取返回值的最佳方法是什么? 我找到了这个链接,http://social.msdn.microsoft.com/Forums/en/ieextensiondevelopment/thread/712db8ec-0ceb-4efa-afe3-590dc6bbb7bf,这个我没试过,这个方法对吗? 问候马诺吉 解决方案 是的,
..
我有一个简短的问题,希望有人能帮助我. 我正在创建/规划一个需要跨平台运行并使用 Windows com 库的应用程序.过去,我使用 win32py 在 python 应用程序中运行这些 com 对象,我一直在做大量研究以在 Mac 上找到解决方案,但我没有运气.理想情况下,我想留在 Python 中,因为我已经有了使用这个库的 Python 2.7 的工作代码.但是,如果有其他语言的解决方
..
我正在为看似超级简单的事情苦苦挣扎:我想使用 MIDL 编译器从 .idl 生成类型库(.tlb 文件)文件.但是,我就是无法让 MIDL 生成 .tlb 文件. 这是我的Foo.idl: 导入“unknwn.idl";[对象,uuid(400075B9-4BD6-45A5-B8B7-9DA0CF7B9B13)]接口 IFoo : IUnknown{HRESULT DoFoo([in] i
..
可以更改网络卷的名称. 我把名字改成了Spinal Disk 要更改网络名称,我会这样做 在注册表中写入新名称. 使用 DefineDosDeviceW 等函数附加我的网络卷.在这个时间里,Windows 资源管理器在我的猜测中读取了注册表. SHChangeNotify(SHCNE_DRIVEADD, SHCNF_PATH, root, NULL);//可以肯定. SendM
..
我开发了一个可能使用 adobe flash 的 C++ 程序,虽然它不是必需的. 我使用 CoCreateInstance 创建 flash 对象,如果失败,我知道 flash 没有安装所以我不使用它. 但是,在 Vista 中(我也认为是 Windows 7),当未安装 flash 时,离开应用程序后,“程序兼容性助手"会弹出一条消息,指出“此程序需要缺少 Windows 组件",指定 f
..
我有一个遗留的 C++“解决方案引擎",我已经将它包装为一个进程内 COM 对象,供只需要一个单个“解决方案引擎"的客户端应用程序使用. 但是,我现在有一个需要多个“解决方案引擎"的客户端应用程序.不幸的是,底层遗留代码有足够的全局数据、单例和线程恐怖,给定可用资源,不可能同时在进程中拥有多个实例. 我希望某个善良的灵魂可以告诉我一些 COM 魔法,通过翻转几个注册表设置,可以有一个单
..
我知道如何获取所有打开的资源管理器窗口,使用 Microsoft Internet Controls COM 库.由此,我能够找到 LocationURL 这些窗口.但是,这仅针对文件系统上的路径设置.似乎当 虚拟对象 显示,如网络打印机或回收站,LocationURL 为空.LocationName 似乎仍设置为开始栏上可见的名称. 当设置了 LocationURL 时,这足以让我知道资源
..
我正在通过将 Windows 消息直接发送到 HWND 和调用由自动化应用程序公开的 COM 服务器组合来进行一些自动化操作. 如果有多个实例在运行,我需要能够确定 COM 服务器的进程 ID,以便我可以通过 COM 调用访问同一个实例,作为我向其发送 Windows 消息的实例. 我可以用正在运行的对象表枚举所有正在运行的 COM 服务器并取回所有它们的名字对象,但是 COM 对象本
..
我正在查看 Windows 8.1 SDK,在 UnknownBase.h 中看到类似 typedef interface IUnknown IUnknown; 我以前从未见过这个 interface 关键字.请注意,这绝对是一个 .h 标头,由 cl.exe 处理.不是IDL文件,也不是midl.exe处理的. 我在网上找到了这个:http://msdn.microsoft.com/e
..
我正在尝试调用 COM 对象的方法,其中 记录的 参数之一是 “字节数组".实际声明取决于您正在查看的每种语言的文档: 在 C# 语言中: byte[] TransformFinalBlock(字节[] 输入缓冲区,整数输入偏移,整数输入计数) 使用 C++ 语言; 数组^ TransformFinalBlock(数组^输入缓冲区,整数输入偏移,整数输入计数) VB 语
..
我需要编写调用 DllRegisterServer 时运行的代码.即当有人打电话时: regsvr32 myActiveX.ocx 我正在尝试找到所需注册表项的最终列表(而不仅仅是我可以通过拼写注册表拼凑出来的内容). 到目前为止,我的探险队已经找到了: HKEY_CLASSES_ROOT\MyCoolLibrary.MyCoolControl\Clsid(默认)=“{myClassI
..
我正在尝试确定我的键盘何时连接或断开.我尝试了以下策略: 注册设备通知 按照 MSDN 在 如何确定在 DirectInput 中断开的键盘.当我尝试这个时,我在窗口回调中得到 DB_DEVNODES_CHANGED 事件,它没有提供其他信息(只是 一些未知 设备已更改连接状态).我尝试了各种 GUID 进行注册:4D36E96B-E325-11CE-BFC1-08002BE10318
..
哪些 win32 调用可用于从 Windows 服务全局检测按键事件(不仅针对 1 个窗口,我希望每次按下按键时都收到一条消息)? 解决方案 你想使用 Win32 Hooks.特别是键盘钩子. 你可以阅读更多关于这里 你想要的钩子类型是 WH_KEYBOARD,你可以通过 Win32 API SetWindowsHookEx 设置它. 基本上,每次在任何应用程序系统范围内
..
我一直在 Windows API 中构建一个非常小的游戏,在主消息循环中,我使用 GetAsyncKeyState() 来测试用户是否按下箭头按钮.我使用它而不是 WM_KEYDOWN 因为使用 WM_KEYDOWN 在第一次按下后会有一个初始暂停,我不想修改用户的设置.我的防病毒程序将游戏标记为键盘记录程序,还有其他方法吗? 解决方案 反病毒程序应该如何猜测你是没有使用 GetAsync
..
我正在尝试注册一个热键,我正在翻译 这个 C++代码转换成C#: 使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;使用 System.Runtime.InteropServices;命名空间 ConsoleApplication1{课堂节目{[DllImport("user32.dll")]公共静态外部bool Regist
..
我有以下代码: INPUT 输入 = { 0 };Input.type = INPUT_KEYBOARD;Input.mi.dwFlags = KEYEVENTF_EXTENDEDKEY;Input.ki.wVk = 'A';//尝试 0x41, ( UCHAR )VkKeyScan( 'A' )发送输入(1,&输入,sizeof(输入)); 但它只生成'a'.如何强制它也生成大写? 谢
..
我正在尝试使用 SendInput() 将句子发送到另一个应用程序(记事本),然后按 Enter 键发送它. 任何代码片段?或者帮忙 解决方案 INPUT 输入;字 vkey = VK_F12;//见下面的链接input.type = INPUT_KEYBOARD;input.ki.wScan = MapVirtualKey(vkey, MAPVK_VK_TO_VSC);输入.ki.
..