获取Windows 上应用窗口相关属性

最近项目经常需要获取应用程序窗口的详细信息,比如相对的位置、尺寸、窗口属性, 写了一个测试用的 DEMO  试试一些基本的获取void CMFCApplication1Dlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码         /** 根据窗口类名和标题名找到窗口,返回句柄** ...

MoveWindow 和 SetWindowPos 区别【摘录】

  先看MoveWindow()函数,用于改变窗口的位置和尺寸,对于顶层窗口,按照屏幕对齐与左上角,对于子窗口,则对齐与父窗口的左上角。BOOL MoveWindow( HWND hWnd,int x, int y, int nWidth, int nHeight,BOOL bRepaint = TRUE);  第一个表示窗口句柄;  参数x,y表 ...

VS2015 在 MFC中插入ActiveX 控件(mstscax.dll)后报出Debug Assertion Failed

昨天同学想基于mstscax.dll 实现一个简单的MSRDP 客户端,参照网上的方法在MFC 对话框插入一个ActiveX 控件然后创建对象,但是即使一行代码也不写直接运行,立即就报错了Debug Assertion Failed!Program: C:\WINDOWS\SYSTEM32\mfc140ud.dllFile: d:\agent\_work\3\s\src\vctools\VC7Libs\Ship\ATLMFC\Src\MFC\oc ...

判断当前进程是否是64位的

判断当前进程是否是64位的,可以用到一个内核函数 IsWow64Processhttps://docs.microsoft.com/en-us/windows/win32/api/wow64apiset/nf-wow64apiset-iswow64process在用户层调用时这个函数需要自己从 kernel32.dll 中 导出#include "stdafx.h" #include <windows.h> #inc ...

生成屏幕截图,并在截图上面加上文字戳

前两天有一个需求,需要进行屏幕截图留存,截图上还需要有“文字戳”,这个用 GDI+ 来实现非常简单,GetDC(  HWND  ) , 我们可以把想截取的窗口的句柄传入,如果想截整个桌面直接传入 NULL ;  获取 HDC (  设备上下文 ) 后,余下的工作交给 CImage 处理即了,CImage 非常强大,有兴趣可以慢慢研究。#include "stdafx. ...

改良 OutputDebugString 使之可以像 printf 一样支持参数打印

在写服务程序、注入的DLL 或内核程序时,并不是很方便进行源码级的断点调试,所以有时候我们会直接在控制台打印日志信息,一些JAVA 程序员也有使用 System.out.println( "*****" )  打印执行步骤的习惯;我在采用 printf 打印时通常都会加上详细的参数;c 标准的 printf 也支持 fromt 格式化输出:比如  printf(&nb ...

Windows 下CLion + Qt 开发环境的搭建

以前总只以为Qt 仅是 C 开发图形界面程序时的界面库,使用一段时间后发才发觉它的确是非常牛叉,不仅自身集成并扩展了大量的类库而是跨平台。但是Qt 自带的Qt Creator 集成开发环境总让觉得有点闹着玩似的。CLion 是JB 全家桶中C  集成开发工具,应该是除了VS 之外大家的最爱。今天花了时间尝试在CLion 集成Qt  ,记录如下:在Windows 下使用 CLio ...