- Published on
Windows
- Published on
本文介绍了如何获取 Windows 桌面上所有可见窗口的信息,包括窗口句柄、标题、类名、区域和 ZOrder(显示层级)。通过使用 C++ 和 Windows API,定义了 `WindowInfo` 结构体来存储窗口信息,并通过 `EnumWindows` 函数枚举所有可见窗口。代码示例展示了如何遍历窗口列表,获取每个窗口的详细信息,并计算其 ZOrder,最终返回包含所有窗口信息的 `QVector<WindowInfo>`。- Published on
本文介绍了如何在使用第三方远程桌面软件连接公司电脑时,解决物理控制台无显示的问题。原因是微软远程桌面(RDP)会创建独立的会话,默认不显示在物理控制台上,而其他软件如 TeamViewer 无法直接输出到物理屏幕。通过使用 `tscon` 命令将远程会话转换为 console session,可以实现在物理控制台上查看远程桌面输出。具体步骤包括使用 `query user` 查看会话ID,并执行 `tscon <session ID> /dest:console` 进行转换。- Published on
本文介绍 Win32、MSAA、UIA 技术。Win32 是基础 API 用于 Windows 界面开发,MSAA 助开发辅助功能,UIA 是 Windows7 新功能提供更精确访问信息。RPA 产品需这些技术来控制 GUI 应用,各技术优缺点各异,需根据需求灵活选择。- Published on
- Published on
- Published on
- Published on
- Published on
- Published on
- Published on
- Published on
文章主要讲 Qt 正确显示窗口,有多种展示情况及常见做法,如`widget->show(); widget->raise();`但存在窗口最小化后出不来等问题,给出`GraceShowWidget`函数代码可解决,测试无问题。- Published on
文章介绍 log4cxx 的常用 appender 及在 GUI 程序中用 OutputDebugString 看日志。提到可通过配置 log4cxx.properties 实现向 OutputDebugString 输出日志,用 vs 输出窗口或 DebugView 工具实时查看。- Published on
- Published on
文章介绍双击 exe 阻止程序启动的方法,不依赖传参,通过获取父进程 ID 判断是否为 explorer.exe 进程 ID 来实现。给出获取进程信息、按名称获取进程 ID、获取父进程 ID 的函数及示例代码。- Published on
客户端使用 QSortFilterProxyModel 时,频繁更新 model 致 table 行排序不正确。虽可手动调用 sort 及 invalidate,却在特定操作时会崩溃。可关 dynamicSortFilter 用 Timer 控制排序,通过相关函数控制触发间隔及在 model changed 槽函数启动 timer 来解决此问题。- Published on
在 Qt 中,show 用于显示窗口,raise 可将窗口置于最前。但主窗口点击时子窗口可能遮挡,此时需用 activateWindow 和 raise 解决。show 显示窗口及子窗口,showNormal 恢复最大化或最小化窗口,raise 提升窗口,activateWindow 设置活动窗口并可与 raise 配合确保窗口置顶。- Published on
介绍 qpid-cpp Windows 编译,需先安装 boost 等,下载源码解压后用 CMake 配置,因缺 boost 设 BOOST_ROOT 路径,后用 vs 编译 ALL_BUILD 和 INSTALL,即便有 setlocal 错误,qpid-cpp 也已安装在 C:\Program Files (x86)\qpid-cpp 目录下。- Published on
Qt 客户端多开需注意本地配置、进程名及全局信息。可通过 RunGuard 类保证同一程序仅运行一个进程,多开时要保证目录和进程名不同,若已有进程运行则打开其主窗口。- Published on
本文介绍如何使用Node.js脚本调用AStyle.exe批量格式化C/C++代码文件,包含配置和使用方法。- Published on
本文介绍用 Qt 官方的 qt-installer-framework 制作 Windows 安装包,给出主要目录结构及各文件内容,如 config.xml、package.xml 等,还说明了放置应用程序文件及打包命令等,最后提供目录结构和制作后的安装包下载地址。- Published on
在 visual studio 中,.props 文件可固定工程配置,方便下次使用。其内容包含库目录宏定义等,导入到 vcxproj 文件只需在后者中用<Import Project="$(SolutionDir)asio.props"/>等语句。- Published on
这篇文章介绍了如何解决GitHub下载速度慢的问题。作者通过查询GitHub域名对应的IP地址,并修改Windows系统的hosts文件,使得GitHub的下载速度大大提高。同时,文章还提供了在MAC电脑上修改hosts文件的步骤。最后,作者测试了修改后的效果,下载速度达到了400~500kiB/s。- Published on
收集 C++ Windows 实用函数,含头文件依赖,如获取系统内存等信息、字符串编码转换、目标是否存在等 17 个函数,涵盖内存、线程、时间、文件等方面操作,方便开发使用。- Published on
- Published on
字符编解码故事:起初 ASCII 用于美国,后世界各国使用计算机,中国制定 GB2312 等编码,各国有不同编码致交流困难。ISO 推出 UNICODE 用两字节统一表示所有字符,后有多种 UTF 标准。记事本中 GB2312 编码与 UTF8 编码易产生冲撞,还有多种编码形式及转换函数,如 MultiByteToWideChar 和 WideCharToMultiByte。- Published on
2017 年 10 月 24 日回顾当年 MFC 信息管理系统毕业设计,曾想弄 UDP 日志服务程序,用 MFC 做单文档应用。参照孙鑫教程学两月后做毕设,功能随意加,最后成学习试验品。现公布源码,数据库连不上部分已注释,VC6.0 可编译运行。- Published on
WSAAsyncSelect 模型与窗口相关,用消息通知。文中为对话框客户端关键代码,连接 echo 服务端,测试文件传输,包含自定义消息、消息映射等,还有连接、发送、接收等相关函数。- Published on
- Published on
文章介绍 visual stdio 不同目录下文件重名及类重名问题及解决方法。先给出特定目录结构及代码,编译时出现 warning 因同名 obj 文件导致类编译出错,简单改文件名可解决但会造成重复定义,加命名空间可解决。还可在重复 cpp 文件属性中修改输出文件对象文件名避免重名。- Published on
此代码实现了 Windows 任务栏高亮功能。通过`startAlert`函数可设置高亮持续时间和超时时间来闪烁任务栏,`stopAlert`函数则停止高亮。利用`FLASHWINFO`结构体和`FlashWindowEx`函数来完成相关操作。- Published on
Qt 应用在 XP(sp3)系统出现“无法定位程序输入点 strnlen 于动态链接库 msvcrt.dll 上”错误,含 D3Dcompiler_47.dll 和 opengl32sw.dll。可移除前者用后者,或在 QApplication 实例化前加代码强制 XP 不使用前者,参考相关 Qt 文档。- Published on
- Published on
- Published on
- Published on
此 C++代码通过 Windows API 在文件末尾追加“hello”。先创建文件句柄,获取文件大小,创建文件映射对象,获取映射视图,将“hello”复制到文件末尾,最后解除映射和关闭句柄,实现了在文件末尾追加内容的功能。- Published on
文章介绍 Robomongo 连接远程 MongoDB 数据库的步骤,包括修改远程服务器 mongodb 配置、创建管理员用户并重启服务,还展示了 Robomongo 连接远程服务的截图以及备份还原数据库的方法,如 mongodump 和 mongorestore。- Published on
- Published on
- Published on
此代码为获取指定文件夹下所有.txt 文件的名称及创建时间。通过`FindFirstFile`和`FindNextFile`函数遍历文件夹,将文件名存储在数组中并返回文件数量,最后关闭查找句柄。- Published on
介绍了在 Windows 的 C/C++中,通过初始化 gdiplus 环境,定义成员变量,在构造和析构函数中进行相应操作,实现 Gdiplus 与 GDI 混合的双缓冲代码,包括创建兼容 DC 和位图等操作。迁移于 2011 - 05 - 08。- Published on
介绍给对话框添加垂直滚动条的方法,通过消息映射宏、OnInitDialog 初始化及响应 WM_VSCROLL、WM_SIZE、WM_MOUSEWHEEL 等消息来实现,包括各消息处理函数的具体逻辑。- Published on
介绍 WTL CHyperLink 类用法,需含 atlctrlx.h 头文件,声明变量并在 OnInitDialog 函数中进行子类化等操作,在消息映射宏中响应事件,可实现点击链接打开指定网页。- Published on
- Published on
介绍了 WTL 自定义的常用类,包括设置背景图片的`CBitmapBkgnd`类、设置背景颜色及字体颜色的`CCtrlColor`类、自定义静态文本控件的`CMyStatic`类及`CCoolLabel`类,详细说明了各类的功能及用法。- Published on
文章介绍 WTL 对话框应用程序常用头文件,包括提前声明 CString 类的 _WTL_USE_CSTRING,以及 atlbase、atlapp 等多个用于基本类、窗口类、数据交换类等的头文件,方便开发。- Published on
文章介绍实现无标题栏对话框拖动的方法。有两种方案,常规思路繁琐且需处理诸多细节,第二种通过处理 WM_NCHITTEST 消息,在客户区模仿标题栏拖动行为实现,代码简单易理解,对话框其他对象照常工作。- Published on
文章介绍通过 WTL 的 IWebBrowser2 调用网页中 javascript 函数。给出简单含 js 网页代码,及相关 WebBrowser ActiveX 控件成员变量等操作,在 OnInitDialog 中导航到网页,OnOk 函数中测试执行 js 函数,还给出 WtlCallJavascript 函数,运行后可实现相应功能。- Published on
在 WTL 中,为使 WebBrowser 控件在自己窗口打开网页,需添加 IWebBrowser2 控件,创建时勾选相关选项并插入控件。通过代码实现运行后打开默认网页及解决同一窗口打开网页问题,还需处理编译错误和运行时响应事件等。- Published on
本文记录了在看孙鑫老师 vc++16 课聊天程序视频教程时遇到的两个 SOCKET 宽字符问题及解决方法。一是从 ip 地址控件获取值经转换后接收端显示乱码,通过 MultiByteToWideChar 转换为宽字符解决;二是 WSABUF 中 buf 只能接受 char*,需强制转换。作者表示对 SOCKET 宽字符处理仍需努力。- Published on
介绍 Windows 下进程间通信方式,包括文件映射、共享内存等 10 种。阐述各方式特点,如文件映射可共享数据但限于本地;命名管道可跨进程及计算机通信等。开发者需考虑应用环境选择,文末给出多种选择方案及考虑因素。作者李志刚等。- Published on
文章介绍内存对齐原因(平台、性能)及规则,通过例子说明结构体大小计算。如 32 位机器上不同结构体示例,还提及- Published on
文章介绍 WebBrowser 控件判断页面加载完毕的方法。DWebBrowserEvents2 Members 的 DocumentComplete 成员可用于此,但直接处理不行,需做处理。给出具体代码示例,在特定条件下进行页面加载完成的处理。- Published on
介绍了静态库的编写与调用。先新建 Win32 Console Project 生成 LibAdd.lib,再新增头文件和源文件。调用时新建 Test 工程,包含头文件,指定 LibAdd.lib 目录和名称,在 main 函数中测试,得到所需结果。- Published on
总结:高版本 visual studio 可直接打开低版本工程需转换,低版本打开高版本工程需改动,如用 vs2003 打开 vs2008 建的工程,需将 tjw.sln 的 Format Version 10.00 改为 8.00,tjw.vcproj 的 Version="9.00"改为"7.10"。- Published on
介绍内存文件映射用于进程间通信,Microsoft 加入支持可创建内存映射文件无需专门磁盘文件。创建文件映射对象后可像使用任务内存区域,共享数据时传入名称。进程不再需要可调用 CloseHandle 收回存储器,分普通文件和页文件,示例展示进程 1 和进程 2 的操作。- Published on
文章介绍在对话框上做“应用”按钮的方法。定义 WM_APPLY_TRUE 和 WM_APPLY_FALSE 消息,在 Main 对话框中实现消息映射和响应,还捕获全局消息,根据不同情况使“应用”按钮可用或不可用,用的是 WTL 且基本方法一致。- Published on
文章主要探讨 char 与 wchar_t,指出 char 存 ascii 码字符,wchar_t 存汉字等双字节字符。通过示例解释 char 存储汉字的原理及 memcpy_a 函数对 wchar_t 汉字串拷贝的方式,还提到用宽字符函数输出汉字需包含特定头文件和设置 locale。- Published on
这是一个用 electron 框架做的 demo 程序,调用 showapi 接口数据。入口 main.js 初始化菜单、窗口等,还通过 ipc 与各页面通信,用 ejs 在 html 上展示数据,源码可在[https://code.csdn.net/tujiaw/showapi/tree/master](https://code.csdn.net/tujiaw/showapi/tree/master)查看。- Published on
QtCharts 提供易使用的图表组件,用 Qt Graphics View Framework 可轻松集成。需自行编译安装,步骤包括获取源代码、用 vs2015 x64 编译安装、安装帮助文档及编译运行 demo 程序,各步骤详细且可成功展示图表。- Published on
文章介绍了 Windows 中判断窗口是否置顶、设置取消置顶及设置前景的方法。通过相关函数可实现这些操作,还定义了 WinParameter 类来解决特殊情况下设置失败问题,包含构造和析构函数。- Published on
文章介绍 C++获取输入法名字及调整输入法候选框位置。可通过窗口布局或 HKL 获取,给出获取名字的函数及调整位置的代码,还包含相关头文件,支持 win7 及以下系统。- Published on
介绍 Windows 下用 VS2013 编译 Qt5.6 源码的步骤,包括下载源码、安装相关工具、ICU 源码编译及环境变量设置等,还提及编译中常见问题及解决办法。- Published on
文章介绍让程序只有一个实例运行的方法,开始加代码实现。有三种:一是找先前窗口实例并激活;二是用互斥对象,创建后判断是否已存在;三是用事件对象,创建后判断是否已存在,若已存在则直接返回。(迁移 2011 - 05 - 28)- Published on
文章介绍了进程或线程同步互斥的四种控制方法:临界区速度快可串行化访问公共资源;互斥量可跨进程控制资源访问;信号量允许多线程同时访问有限资源;事件可通知线程同步。并分别给出各方法的操作原语及 MFC 类的使用示例,还通过实例展示了临界区和事件的用法。- Published on
- Published on
- Published on
文章介绍 WTL 多页面显示实现方法,主对话框有三页面,设属性、成员变量,设置显示区域并创建页面,移动到指定区域,最后根据条件显示指定窗口,隐藏其他窗口,如显示第一页隐藏第二、三页。- Published on
主要讲述 32 位到 64 位程序移植,以输入法为例,需编译 64 位 DLL 且注意内存、函数等方面问题。64 位系统有 SysWow64 兼容 32 位,输入法需两个 IME 分别放 System32 和 SysWow64,启动时系统根据应用程序位数加载相应 IME。- Published on
介绍了一个老外写的好用 ToolTip,解决两个小问题(鼠标划上立马弹出又消失、提示框停留时间短),给出源码及用法,需写入头文件、继承类等,还可看源码函数了解其他用法。- Published on
2017 年 1 月 26 日记录为 CComboBox 控件增加系统字体名的过程。先定义并关联对象,再通过 EnumFontFamiliesEx 及回调函数获取字体名并添加到 CComboBox 中,注意相关参数设置和返回值,还需去掉带@号的字体名。- Published on
介绍 WTL 安装到 VS2008 和 VS2010 的方法。WTL8.0 支持 VS2005 ,8.1 支持 VS2008 。安装时需注意解压、设置 VC++目录等步骤,若遇错误可参考相关资料解决,VS2010 安装需下载特定文件并按步骤操作。- Published on
文章主要讲分离 WinMain 中传进的字符串,WinMain 可接受外部字符串但获取的是整个,要获取多个需分离源字符串,文中给出 MSDN 介绍的方法,通过相关函数处理并输出结果。- Published on
文章介绍了 WTL 自画按钮与文件对话框。包含自画按钮类 CBmpEixtBtn 的定义及相关操作,如在 OnInitDialog 中进行子类化;还有文件对话框相关代码,通过 BROWSEINFO 等设置获取选择目录并显示在编辑框中。- Published on
这是 Win32 API 笔记,包含创建非模式对话框、静态文本控件、显示图片等操作示例,还涉及系统托盘、获取屏幕尺寸等内容,以及诸多关于 Win32 API 的细节和用法。- Published on
介绍 SetWindowLongPtr 与 GetWindowLongPtr 两种用法,重点阐述第二种在额外存储空间设置和获取值。以简单例子展示,分配堆内存并通过这两个函数操作,注意 32 位和 64 位系统指针字节数对偏移位置的影响。- Published on
文章介绍 mongodb 在 windows 和 ubuntu 上的安装及相关操作。windows 需官网下载安装,指定路径创建 data/db 目录,安装服务并指定日志和数据库路径,可通过命令启动或停止;ubuntu 直接 apt install mongodb,可用相应命令启动和关闭服务,还介绍了基本命令及跨平台界面管理工具。- Published on
本文介绍了在 Windows 中用 C/C++获取剪切板中图片大小的代码。通过判断剪切板格式,打开剪切板,获取数据并转换为 DIB 结构,从而得到图片的宽度和高度,还提供了获取最后错误码的函数。