winapi相关内容

获取默认浏览器

如何以编程方式确定系统中的默认浏览器.代码必须使用vc++开发有这方面的 API 吗? 默认浏览器值存储在注册表的什么位置? 解决方案 可以在注册表中找到默认浏览器 即对于 Windows XP 和 Vista 位于 HKEY_LOCAL_MACHINE\Software\Clients\StartMenuInternet\ ..
发布时间:2022-01-12 14:35:56 C/C++开发

在 Windows 中获取登录用户的用户名/密码

是否有任何 API 可以在 Windows 中获取当前登录的用户名和密码? 提前谢谢你. 解决方案 密码:不,出于安全原因,它不会被保留 - 它被使用,然后被丢弃.您可以从注册表中检索该用户的加密密码,给予足够的权限,然后使用类似 彩虹表之类的东西对其进行解密,但使用当前方法非常耗费资源和时间.更好地提示用户. 或者,如果您想像 Novell 那样实现某种“单点登录"系统,您应 ..
发布时间:2022-01-12 14:34:16 C/C++开发

从 CWnd::FromHandle 获得的 CWnd 的生命周期是多少?

根据 msdn,当我使用 CWnd::FromHandle 获取 CWnd*, 指针可能是临时的,不应存储以供以后使用. 我不清楚“以后使用"是什么意思.它只是当前方法的范围吗?据我所知,Win32是没有GC的! 解决方案 MFC 维护了许多句柄映射,从 HWND 到 CWnd,从 HDC 到 CDC 等,这些句柄映射存储在线程状态中.每个句柄映射都包含一个永久映射和临时映射 ..
发布时间:2022-01-12 14:34:09 C/C++开发

我如何决定是否为新的 C++ 项目使用 ATL、MFC、Win32 或 CLR?

我刚刚开始我的第一个 C++ 项目.我正在使用 Visual Studio 2008.它是一个单一形式的 Windows 应用程序,它访问几个数据库并启动一个 WebSphere MQ 事务.我基本上了解 ATL、MFC、Win32(我实际上对那个有点模糊)和 CLR 之间的区别,但我不知道应该如何选择. 其中一个或多个只是为了向后兼容吗? CLR 是个坏主意吗? 任何建议表示赞 ..
发布时间:2022-01-12 14:32:25 C/C++开发

GetDC() 和 BeginPaint() 的区别

我正在开发 Win32 用户界面.我想知道 GetDC 和 BeginPaint 之间的区别.何时使用哪个 API,何时不使用哪个 API. 解决方案 GetDC 只是将句柄返回到设备上下文,可以随时随地使用它来进行自己的绘图.另一方面,BeginPaint 为绘制窗口做准备,并提供关于应该绘制什么的信息(例如背景是否需要重新绘制以及需要绘制的矩形). 何时使用每个示例?BeginP ..
发布时间:2022-01-12 14:30:09 C/C++开发

如何监控当前哪个窗口具有键盘焦点

有没有办法跟踪哪个窗口当前具有键盘焦点.我可以为每个窗口处理 WM_SETFOCUS 但我想知道是否有另一种更简单的方法(即某处的单个消息处理程序). 我可以在 MFC 中使用 OnIdle() 并调用 GetFocus() 但这似乎有点 hacky. 解决方案 所以从你对问题的措辞我推断你想要一个事件处理程序,当焦点在窗口之间切换时调用它.您希望得到通知,而不是轮询. 我实际 ..
发布时间:2022-01-12 14:29:32 C/C++开发

当用户调整我的对话框大小时,如何强制窗口不在我的对话框中重绘任何内容?

当用户抓住一个可调整大小的窗口的一角,然后移动它时,窗口首先移动窗口的内容,然后向正在调整大小的窗口发出 WM_SIZE. 因此,在一个对话框中,我想控制各种子控件的移动,并且我想消除闪烁,用户首先会看到 windows 操作系统认为窗口会是什么样子(因为,AFAICT,操作系统使用 bitblt在发送 WM_SIZE 之前在窗口内移动东西的方法) - 只有 然后 我的对话框才能处理移动其子 ..
发布时间:2022-01-12 14:28:11 C/C++开发

添加对打印和在基于对话框的 MFC 应用程序中预览 HTML

我有一个两部分的问题.我需要为现有的基于对话框的 MFC 项目添加对打印的支持.正在打印的文档是使用 HTML 编写的.我知道我可以添加基于 HTML 的对话框,但是如何添加打印功能呢? PS.我需要这个才能根据程序的需要设置打印页面大小. 解决方案 灵感来自 Marc 的 Durdin 的优秀文章,我做了更多的探索.实际上似乎有一种更简单的方法来提供自定义 DEVMODE 和 DE ..
发布时间:2022-01-12 14:28:04 C/C++开发

如果另一个进程被杀死,则杀死我的进程

我想编写一个代码来启动一个进程并在另一个进程被杀死时杀死我的进程. 你知道好的解决方案吗? 我当前的代码: std::string exeFile{ ExePath() + "\\DTMlibrary.exe" };if (is_file_exist(exeFile.c_str())){ShellExecute(NULL, "open", exeFile.c_str(), NULL, ..
发布时间:2022-01-12 14:27:57 C#/.NET

Windows 7:无论其他哪个窗口有焦点,如何将一个窗口放在前面?

我正在实现一个任务栏替换、类似于停靠栏的应用程序切换器样式程序.它使用 OpenGL 和键盘快捷键做一些独特的事情,所以它的设置方式,窗口并不总是有焦点.我想实现它,以便我可以将任意窗口带到前台,就像任务栏或 ALT-TAB 程序一样. 但是,我的代码只是使应用程序图标在任务栏中闪烁.Windows API 文档说这是应该发生的,但我正在寻找解决此问题的方法. 我已经根据以下示例调整了 ..
发布时间:2022-01-12 14:24:14 C/C++开发

如何调试意外以静默方式终止的 win32 进程?

我有一个用 C++ 编写的 Windows 应用程序,它偶尔会消失.我使用蒸发这个词是因为没有留下任何东西:没有来自 Windows 的“我们很抱歉"消息,没有来自 Dr. Watson 设施的崩溃转储...... 有一次在调试器下发生崩溃,但调试器并没有中断——它显示应用程序仍在运行.当我手动暂停执行时,我发现我的进程不再有任何线程. 如何捕获此进程终止的原因? 解决方案 您 ..
发布时间:2022-01-12 11:51:04 C/C++开发

在 C++ 服务和用户模式应用程序崩溃后收集崩溃 .dmp 和 .hdmp 文件

我正在使用 WinAPI 在 C++/MFC 中进行编码.我的软件由本地服务和为登录的 Windows 用户提供用户界面的用户模式应用程序组成.我正在寻找一种方法来收集 .dmp 和 .hdmp 文件,以防这些模块中的任何一个发生崩溃.我知道 WER 应该收集它们并提交他们给微软.有没有办法收集这些文件并将它们保存在硬盘上的某个位置? PS.我需要它才能在 Windows XP SP3、Vi ..
发布时间:2022-01-12 11:31:43 C/C++开发

Heisenbug:WinApi 程序在某些计算机上崩溃

请帮忙!我真的束手无策.我的程序是一个小小的个人笔记管理器(谷歌搜索“cintanotes").在某些计算机上(当然我不拥有它们),它在启动后因未处理的异常而崩溃.这些计算机没有什么特别之处,只是它们往往具有 AMD CPU. 环境:Windows XP、Visual C++ 2005/2008、原始 WinApi. 这是关于这个“黑森虫"的肯定: 1) 崩溃仅发生在 Relea ..
发布时间:2022-01-12 11:18:13 C/C++开发

UDP 数据包,被 Wireshark 看到,被丢弃(甚至没有到达)WSARecvFrom

我有一个相当令人困惑的问题. 我正在使用一个大型 C++ 库在 Windows XP/7 上通过 UDP 处理一些专有协议.它在程序运行的整个过程中侦听一个端口,并等待来自远方的连接. 大多数时候,这很有效.但是,由于我遇到的一些问题,我决定在调用 WSARecvFrom 之后直接添加一个简单的调试打印(库中用于从我感兴趣的套接字中接收数据报的 win32 函数,并告诉他们来自哪个 IP ..
发布时间:2022-01-11 23:27:26 其他开发

如何手动读/写.exe机器码?

我不太熟悉编译器魔法.将人类可读的代码(或不真正可读的汇编指令)转换为机器代码的行为,对我来说,是火箭科学与巫术的结合. 我将把这个问题的主题缩小到 Win32 可执行文件 (.exe).当我在专门的查看器中打开这些文件时,我可以发现分散在各个地方的字符串(通常每个字符 16b),但其余的只是垃圾.我想不可读的部分(大部分)是机器代码(或者可能是资源,例如图像等......). 是否有 ..
发布时间:2022-01-11 23:20:22 其他开发

用代码模拟窗口拖放?

我想我过去可能问过类似的问题,但我仍然卡住了...... 作为自动化流程的一部分,我必须将媒体文件的特定子集“导入"到封闭源代码的第三方应用程序(Dartfish,以防万一).情况如下: 媒体(视频)文件都在一个文件夹中(有 1000 多个,不幸的是,重组不是一种选择). 在我正在编写的脚本的任何给定迭代中,只有 13 个特定文件必须导入到应用程序中. 应用中没有必须接收文件的导入 ..
发布时间:2022-01-11 21:27:55 C#/.NET