获取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 ...

团队招募

Windows 应用高级开发1、计算机或相关专业,3年以上C / C++项目开发经验2、精通基于 Win32 / MFC 的程序开发;精通 Windows 环境下的 VC++ 程序开发3、熟练使用 boost、libevent, curl, openssl, gsoap、 protobuf 等。4、熟悉 Windows SDK 的调用、分析与调试。5、熟练掌握常用的数据结构、算法、熟练使用STL、泛型、异常处理、内存处理等机制。6、熟悉多进程、多线程 、网络编程、I ...

一个 %20 的陷坑,企图用QSettings 生成.desktop 文件的误操作

这两天有一个临时需求,需要给客户的 Linux 桌面上生成一批“快捷方式” ,“快捷方式”这个说法源于Windows 上的叫法,双击桌面图标就可以调用一个可执行文件, 在Linux 上的做法是创建一个 .desktop 文件,严格按照规范的格式去写就可以了;当时我目测这就是一个十分常见的 ini 文件,Qt 中有专门读写配置文件的类 QSettings ,于是我几行代码来写了一个看似没有问题的文件QSettings *configIniWrite  ...

判断当前进程是否是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 ...