检测计算机是否处于睡眠模式

通过监听WM_POWERBROADCAST消息: 小示例: LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if (WM_POWERBROADCAST == message &amp...

2019-08-27 15:40:38

阅读数 10

评论数 0

使用FindNextFile遍历特定文件夹

如果你想要列出所有后缀为.cur的游标文件,那么你可以使用FindNextFile轻松做到,但是最好限于特定文件夹,因为你如果要全盘搜索,那效率是十分低的。 源码是开箱即用的: #include <windows.h> #include <iostr...

2019-08-27 14:04:59

阅读数 8

评论数 0

通过createprocess获取cmd.exe里面命令行数据

时间比较匆忙,我就直接上样例了,后面有时间再贴细节。 #include <Windows.h> #include <string> int main() { BOOL ok = TRUE; HANDLE hStdInPipeRead...

2019-08-22 18:13:44

阅读数 12

评论数 0

WS_EX_TRANSPARENT - 它实际上做了什么?

MSDN是这样说的,在窗口下方(由同一个线程创建)的兄弟姐妹被绘制之前,不应该对窗口进行绘制。窗口显示为透明,因为底层兄弟窗口的位已经被绘制。 要在没有这些限制的情况下实现透明度,请使用SetWindowRgn函数。 根据我的理解就是, 透明使你的事件(如鼠标单击)从窗口 穿过。而不透明度...

2019-08-22 11:04:01

阅读数 10

评论数 0

如何使用UpdateLayeredWindow

将WS_EX_LAYERED样式添加到窗口中。例如,可以通过调用CreateWindowEx完成此操作: hWnd = CreateWindowEx(WS_EX_LAYERED,szWindowClass,szTitle,0, CW_USEDEFAULT,0,CW_USEDE...

2019-08-22 10:09:36

阅读数 12

评论数 0

如何使用com组件

这里有篇介绍的很详细的文章:https://www.codeproject.com/Articles/633/Introduction-to-COM-What-It-Is-and-How-to-Use-It 这是我根据文章写的demo,能够成功实现 #define WIN32_LEAN_...

2019-08-16 18:23:02

阅读数 12

评论数 0

将std::string转换为LPCSTR

方法:使用LPWSTR可以更改指向字符串的内容。不能使用LPCWSTR,因为它无法改变指向的内容 LPWSTR ConvertToLPWSTR( const std::string& s ) { LPWSTR ws = new wchar_t[s.size()+1]; //...

2019-08-16 18:16:31

阅读数 20

评论数 0

进程and窗口的相关api

要查看给定进程是否正在运行,可以使用: CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS)用Process32First()和Process32Next() 请参阅拍摄快照和查看进程 或者 EnumProcesses用OpenProcess()和GetMo...

2019-08-15 16:21:58

阅读数 9

评论数 0

用全局挂钩检测当前窗口是否激活

使用全局挂钩的前提是使用DLL DLL.cpp // dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" #include <Windows....

2019-08-14 18:20:13

阅读数 12

评论数 0

为什么我们需要C++中的虚函数

摘自stackoverflow:https://stackoverflow.com/a/2392656/11128312 假设你有这两个类: class Animal { public: void eat() { std::cout << ...

2019-08-14 11:09:30

阅读数 12

评论数 0

C++如何检测DPI

DPI的英文全称为Dots per inch 解释:每英寸点数(dpi或dpi[1])是空间打印、视频或图像扫描仪点密度的一种度量,特别是可以放置在1英寸(2.54厘米)跨度内的一行中的单个点的数量。同样,新引入的每厘米[2]点(d/cm或dpcm)是指可以放置在1厘米(≈0.393英寸)线内的...

2019-08-13 10:51:33

阅读数 7

评论数 0

GetWindowTextW的使用

GetWindowTextW: 将指定窗口标题栏的文本(如果有)复制到缓冲区,如果指定的窗口是控件,则复制控件的文本。 注意:GetWindowTextW无法检索另一个应用程序中的控件文本 函数原型: int GetWindowTextW( HWND hWnd, LPWSTR ...

2019-08-09 17:56:42

阅读数 67

评论数 0

使用SendMessage获得另一个程序的窗口标题

SendMessage可以将指定的消息发送到一个或多个窗口。 一个简单的例子 char text[256]; LRESULT result = SendMessage(windowHandle, WM_GETTEXT, sizeof(text), LPARAM(text)); ...

2019-08-09 17:38:33

阅读数 48

评论数 0

使用更安全的方法去子类化控件

在很长一段时间内,我们都习惯使用SetWindowLong去子类化控件,但是这种方法存在很多缺点,具体可以看MSDN文档的介绍。 这是列举出的四个缺点: 窗口过程只能更换一次。 创建子类后很难删除它。 将私有数据与窗口相关联是低效的。 要调用子类链中的下一个过程,不能转换旧窗口过程并调用...

2019-08-06 17:47:57

阅读数 26

评论数 0

自定义对话框(使用CreateDialog)

之所以写这篇文章,一方面是给后面的人提供一个参考,另一方面也是给自己复习。 CreateDialog: 从对话框模板资源中创建非模态对话框。 函数原型:void CreateDialog(hInstance, lpName, hWndParent, lpDialogFunc) 第一个参数是模...

2019-07-30 13:57:34

阅读数 23

评论数 0

UTF8

原文转载:https://www.jianshu.com/p/eb68e3298b0b utf-8和Unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念 要想先讲清楚他们的区别,首先应该讲讲Unicode的来由。 众所周知,在...

2019-07-29 13:48:20

阅读数 15

评论数 0

如何使静态控件“透明”

需要自定义静态控件,且重绘控件背景,贴一个样例,仅供参考 // Test_WM_CTLCOLORSTATIC.cpp : Defines the entry point for the application. // #include "stdafx.h" #includ...

2019-07-25 16:45:29

阅读数 27

评论数 0

如何在子控件上使用WS_EX_LAYERED

从Window 8开始,WS_EX_LAYERED可用于子控件。 方法:需要清单文件,至少指定Window 8兼容性(子分层仅支持从Window 8开始)。 对于想要使用分层子窗口的任何人,应将以下内容作为清单文件包含在内。 <assembly xmlns="urn...

2019-07-25 16:28:36

阅读数 18

评论数 0

GDI如何设置透明背景,以及设置静态控件背景颜色

首先,要熟悉WS_EX_LAYERED的概念,它是设置透明背景的重要参数。 看代码: case WM_CREATE: { LONG Style = GetWindowLong(hWnd, GWL_EXSTYLE); //hWnd是主窗口句柄 SetWindowLo...

2019-07-24 11:37:15

阅读数 25

评论数 0

用python创建窗口

利用win32库可以做到这点,直接上代码 import win32api, win32con, win32gui import win32gui_struct import ctypes from ctypes import * GUID_DEVINTERFACE_USB_DEVICE...

2019-07-23 10:58:35

阅读数 18

评论数 0

提示
确定要删除当前文章?
取消 删除