Windows应用层编程
张小方32
这个作者很懒,什么都没留下…
展开
-
窗口站和桌面
窗口站和桌面_顺其自然~的博客-CSDN博客_createwindowstation窗口站和桌面的概念___lhy的博客-CSDN博客_setactivedesktop原创 2022-11-13 23:19:30 · 298 阅读 · 1 评论 -
Windows 性能监视器API
性能监视器以实时或查看历史数据的方式显示了内置的 Windows 性能计数器。可以通过拖放或创建自定义数据收集器集将性能计数器添加到性能监视器。其特征在于可以直观地查看性能日志数据的多个图表视图。可以在性能监视器中创建自定义视图,该视图可以导出为数据收集器集以便与性能和日志记录功能一起使用。本文介绍通过API,读取性能监视器中的数据。一、API介绍:1、PdhOpenQuery:获取性能监视器数据查询句柄;2、PdhAddCounter:添加计数器;3、PdhCollectQuery..原创 2021-08-13 16:42:54 · 781 阅读 · 0 评论 -
在VC中使用自定义资源,FindResource,LoadResource,LockResource
一、前言 在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。 1. 默认的皮肤压缩包或语言包。一些支持换肤的软件特别是一些媒体播放器常常有自定义的皮肤文件(你可以尝试将Media Player或千千静听等软件的Skins目录下的文件的扩展名改为.原创 2016-03-24 16:54:27 · 1046 阅读 · 0 评论 -
如何使对话框程序启动以及主窗口最小化时不在任务栏上显示
时下流行的许多软件,如QQ,迅雷等,启动主程序以及主窗口最小化时,不在任务栏上显示按钮,这是怎么做到的呢?首先说主窗口启动时不再任务栏上显示按钮的问题方法1,将主窗口的属性设置为WS_EX_TOOLWINDOW,MSDN给的解释是创建一个工具窗口,用作浮动工具栏。工具窗口拥有比正常窗口短一些的标题栏,并且标题栏的字体也要小一些,工具栏窗口不会在任务栏中出现,也不会在用户按下Alt+Tab进原创 2016-01-15 17:28:54 · 2753 阅读 · 0 评论 -
检测网络连接是否正常的方法
1. InternetCheckConnect只能检测类似于http开头的网址,例如你只能写:InternetCheckConnect(_T("http://127.0.0.1"), FLAG_ICC_FORCE_CONNECTION, 0);不能检测InternetCheckConnect(_T("127.0.0.1"), FLAG_ICC_FORCE_CONNECTION, 0);原创 2015-11-27 17:38:21 · 4211 阅读 · 0 评论 -
gdiplus将一种图片格式转换成另外一个指定图片格式,且可设置图片大小
int TransPicture(LPCWSTR lpSrcFile,LPCWSTR lpDstExt, long nWidth, long nHeight, CStringW &strDstFile) { USES_CONVERSION; CFileFind find; #ifdef UNICODE if (!find.FindFile(lp原创 2015-12-14 16:40:10 · 1069 阅读 · 0 评论 -
WM_MEASUREITEM/WM_DRAWITEM/WM_COMPAREITEM/WM_DELETEITEM
我们在做程序设计时界面与功能,那个更加吸引用户的兴趣呢?这是一个很难回答的问题。拥有美丽的外观,软件就成功了一半。界面由控件、工具栏、菜单、窗体等元素组成,对他们进行美化就能得到一个美丽的界面。目前界面编程技术包括MFC、win32 SDK 、CJLibrary、WTL以及一些界面开发包。文本介绍MFC界面编程技术。一、控件自绘控件的生成包括静态控件和动态控件的生成。动态控件是在应用程转载 2015-12-13 00:09:24 · 3089 阅读 · 0 评论 -
深度分析WM_PAINT和WM_ERASEBKGND消息
做windows开发这么久了,一直以来对WM_PAINT和WM_ERASEBKGND消息总是感觉理解的不准确,每次要自绘一个窗口都因为知其然不知其所以然,偶然发现一篇文章,详细透彻地分了这个两个消息的用途和设计初衷,这篇文章也是我见过最深入也是最准确关于WM_PAINT和WM_ERASEBKGND消息的,文中每一句话都值得咀嚼。先转载如下:一直以来,对于WM_PAINT和WM_ERAS原创 2015-11-25 17:10:00 · 3646 阅读 · 0 评论 -
Windows/Linux获取网卡地址方法
#ifndef LINUX #include #pragma comment(lib,"Iphlpapi.lib")#else #define IFRSIZE ((int)(size*sizeof(struct ifreq)))#endif/////////////////////////////////////////////////////////////////////////原创 2015-10-14 20:51:55 · 1906 阅读 · 0 评论 -
客户端架构设计的简单总结
我们知道,客户端是相对服务端而言的,客户端程序相对普通应用程序,主要是增加了网络通讯功能。在这个移动和云存储的年代,大部分终端应用程序都有网络通讯功能, 所以都可以称为客户端。常见的客户端如浏览器,IM客户端, 网络会议客户端,邮件客户端,微博和微信客户端等...通过观察,我们会发现所有的客户端基本是大同小异,都会包括一些相同的功能组件, 下面简单例举下:通讯协议层转载 2015-09-20 23:25:29 · 2351 阅读 · 0 评论 -
查看程序的启动参数,入口参数
由于写了一个小工具要隐藏启动第三方程序,但是不知道人家程序的启动参数是啥,找了点资料其实很简单,只需要两部1.开始->运行,输入wmic2.出现提示后,再输入process,就会显示素有进程的命令行信息这样就会列举出进程名和所有的启动参数了转载 2015-11-03 20:54:34 · 3415 阅读 · 0 评论 -
TrackMouseEvent与_TrackMouseEvent
函数功能:当在指定时间内鼠标指针离开或盘旋在一个窗口上时,此函数寄送消息。 函数原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack); 参数: lpEventTrack;指向结构TRACKMOUSEEVENT的指针。 返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。转载 2015-08-20 16:21:01 · 793 阅读 · 0 评论 -
利用subwcrev.exe工具自动生成VS开发工具中的版本号
关于subwcrev.exe参见: http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev.html http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev-keywords.html基本格式是: SubWCRev WorkingCop原创 2015-08-05 10:48:02 · 6215 阅读 · 0 评论 -
RichEdit控件设置默认字体时只对中文起作用,对英文不起作用的解决办法
对于微软的richedit控件,当你用如下代码设置其默认字体时,你会发现只对中文有效,对英文无效:cf.cbSize = sizeof(CHARFORMAT);::SendMessage(hWnd, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM)&cf);这个时候,你输入中英文混排的文字你会发现,只有中文字体设置生效了,英文却不起作用。要避免这个问题,必须原创 2016-01-19 18:46:50 · 2453 阅读 · 0 评论 -
如何打开一个文件夹并选中该文件夹中的某个文件
Shell “explorer.exe /n,/select,C:\test\123.txt”, vbNormalFocus 这样的话,每次打开新的目录,选中指定的文件,不会再受到干扰了。Explorer所有参数如下: 命令格式 Explorer [/n][/e][[,/root],[path]][[,/select],[path filename]] 参数说明 /n表示以“我原创 2016-02-15 14:52:35 · 1774 阅读 · 0 评论 -
Windows 一些常用到的文件路径相关的API
Path API需要头文件:shlwapi.h其中有一些函数功能存在重复,我在认为比较常用的的函数上加红。BOOL PathFileExists(LPCTSTR lpszPath)功能:检查文件/路径是否存在LPTSTR PathFindFileName(LPCTSTR pPath)功能:获得路径中的文件名例如: PathFileFileName( “c://Program Fi...原创 2019-01-28 17:36:01 · 1169 阅读 · 0 评论 -
解决无法链接GetFileVersionInfoSize、GetFileVersionInfo或VerQueryValue
xsvrDlg.obj : error LNK2019: unresolved external symbol _GetFileVersionInfoSizeW@8 referenced in function "public: int __thiscall CXsvrDlg::_UI_SetProductInfo(void)" (?_UI_SetProductInfo@CXsvrDlg@@QAE...原创 2018-04-10 13:33:37 · 10039 阅读 · 1 评论 -
专门用于消息回调窗口的窗口标识
HWND_MESSAGE Message-Only Windows A message-only window enables you to send and receive messages. It is not visible, has no z-order, cannot be enumerated, and does not receive broadcast messag原创 2016-04-22 10:42:43 · 1676 阅读 · 0 评论 -
windows路径操作API函数
备用,方便查找:PathRemoveArgs 去除路径的参数PathRemoveBackslash 去除路径最后的反斜杠"\"PathAddBackslash 在路径最后加上反斜杠"\"PathRemoveBlanks 去除路径前后的空格PathAddExtension 在文件路径后面加上扩展名PathRemoveExtension 去除文件路径扩展名P转载 2015-11-24 17:03:34 · 949 阅读 · 0 评论 -
求助:程序如何模拟鼠标点击一个TreeView节点?
void CreateTreeViewControl(HWND hMainWnd){ g_hTreeView = CreateWindow(WC_TREEVIEW, _T("Tree View"), WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES | TVS_LINESATROOT, 5, 5, 320, 480, hMainWnd, NULL原创 2015-02-05 17:26:29 · 4467 阅读 · 0 评论 -
检测Windows操作系统是64位还是32位
错误的做法:bool IsOs64Bit(){ SYSTEM_INFO si = { 0 }; ::GetSystemInfo(&si); if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { return true; } return false;}这里wP原创 2016-05-19 16:19:19 · 817 阅读 · 0 评论 -
Wow6432Node
64 位版本 Windows 中的注册表分为 32 位注册表项和 64 位注册表项。许多 32 位注册表项与其相应的 64 位注册表项同名,反之亦然。64 位版本 Windows 包含的默认 64 位版本注册表编辑器 (Regedit.exe) 可显示 64 位和 32 位的 注册表项。WOW64 注册表重定向器为 32 位程序提供了对应于 32 位程序注册表项的不同注册表项。在 64 位版本的注册转载 2016-05-06 14:56:05 · 3056 阅读 · 0 评论 -
VS禁用外部依赖项(External Dependencies)文件夹
工具->选项->文本编辑器->C/C++->高级->禁用外部依赖项文件夹文章来源:http://bbs.csdn.net/topics/390885741原创 2016-04-21 16:40:26 · 4562 阅读 · 2 评论 -
Visual studio 快速定位打开文件在项目中的位置
VS是否有MyEclipse的“Link with Editor”功能?就是能够确定当前打开的文件,具体对应到项目中的那个文件? 当打开一堆文件时,再想确定当前文件对应项目那个文件,就很难找,虽然可以按照【namespace.class】的形式找到,但是如果有些类名跟文件名不一致的时候,怎么办?工具->选项: 文章来源:http://zhidao.baidu.com/link?url=exEJf原创 2016-04-21 16:32:22 · 10413 阅读 · 0 评论 -
COM三大接口:IUnknown、IClassFactory、IDispatch
转载自:http://blog.csdn.net/chenyujing1234/article/details/7753863(1)COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。 (1、1) COM规范规定任何组件、任何接口都必须从IUnknown继承,IUnknown包含三个函数,分别是 QueryInterface、AddRef、R原创 2016-03-25 14:17:20 · 1294 阅读 · 0 评论 -
WTL框架小结
创建窗口时先注册类,通过thunk技术将窗口过程设置为StartWindowProc;主应用程序类_Module至少有一个CMessageMap对象(可以增加、删除或者获得已经存在的引用),而CMessageLoop中存在两个数组,一个数组存放过滤消息结构:CMessageFilter,另外一个数组存CIdleHandler,用于空闲消息处理。CMessageFilter中只有一个PreTrans原创 2015-08-28 13:32:12 · 1937 阅读 · 0 评论 -
注册COM组件
#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ OSVERSIONINFO osvi={0}; osvi.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX); GetVersionEx(&osvi); //Vista以下系统不存在管理员权限运行程序的方式原创 2015-08-27 12:56:35 · 1643 阅读 · 0 评论 -
Windows窗口消息大全
Windows窗口消息大全,全不全自己看 ////////////////////////////////////////////////////////////////////////// #include "AFXPRIV.H"//消息值的定义来源 #include "Dde.h"//DDE消息值的定义来源 #include "CPL.H"//控制面板消息值的定义来源 #incl原创 2015-04-14 17:54:48 · 1292 阅读 · 0 评论 -
用WinInet开发Internet客户端应用指南
文章来源:http://www.cnblogs.com/zdxster/archive/2011/01/27/1945899.html实现步骤大家知道,每个Internet客户端程序都伴随有一定的目的行为,如读文件、写文件、删除文件等等。客户端的程序要实现这些行为的先决条件是建立Internet连接。然后再根据不同的目的进行具体的操作。为了方便起见,下面这这些张表格针对不同的应用行原创 2015-03-16 10:02:35 · 666 阅读 · 0 评论 -
VS调试时监视/查看全局变量
最近同事在调试一个十多年前就开始写的程序,在VS下基于MFC的项目,其中使用了部分全局变量,现在需要在原来的基础上增加新的功能,问我能不能用直接在Watch窗口直接查看全局变量值,他的方法是把全局变量赋值给局部变量再查看,由于多个位置需要就得添加很多的代码,调试完成还要删除,很是不方便。http://furzoom.com/vs-debug-watch-global-variable/VS原创 2015-03-02 13:46:23 · 30525 阅读 · 3 评论 -
如何在程序异常或者崩溃时产生一个dump文件
核心API是:CreateFile()MinDumpWriteDump()需要包含头文件:#include #pragma comment(lib, "dbghelp.lib")代码如下:// test_dump.cpp : Defines the entry point for the console application.//#include "原创 2015-01-07 11:39:50 · 1606 阅读 · 0 评论 -
GDI 与 GDIPlus 获取文字宽度和高度的方法
GDI 与 GDIPlus 获取文字宽度和高度的方法 /// GDI获得字体宽度的方法CClientDC dc(this); CFont font; //Requested font height in tenths of a point.//For instance, pass 120 to request a 12-point font.)原创 2014-12-31 15:37:54 · 3606 阅读 · 0 评论 -
win32程序中如何使用GDIPlus
方法一:删除宏定义:#define WIN32_LEAN_AND_MEAN加上gdiplus.lib引用:#pragma comment(lib, "gdiplus.lib")包含gdiplus头文件:#include 添加初始化代码:ULONG_PTR gdiplusToken;GdiplusStartupInput gdiplusStartupI原创 2015-01-05 11:02:46 · 2886 阅读 · 1 评论 -
Calculating The Logical Height and Point Size of a Font
CreateFont第一个参数字体高度优先使用负数而不是正数。原创 2014-12-30 12:49:34 · 1356 阅读 · 0 评论 -
VARIANT类型 详解
see http://blog.sina.com.cn/s/blog_5410e39e0100mert.html转载 2015-02-05 12:58:40 · 1788 阅读 · 0 评论 -
窗口子类化
VC 中基于 SDK 编程的窗口子类化窗口子类化的作用窗口子类化技术最大的特点就是能够截取 Windows 的消息。一旦用户自定义的窗口函数截取了传向原窗口函数的消息,就可以对被截取的消息进行如下处理:将其传给原来的窗口函数。这是对大多数消息应该采取的措施,因为子类通常只对原来的窗口特性作少量的改动截取该消息,阻止其向原窗口函数发送。修改该消息,修改完毕以后转载 2014-10-15 16:06:18 · 785 阅读 · 0 评论 -
MFC的消息反射机制
1、消息反射解释: 父窗口将子窗口发给它的通知消息,首先反射回子窗口进行处理(即给子窗口一个机会,让子窗口处理此消息),这样通知消息就有机会能被子窗口自身进行处理。 2、MFC中引入消息反射的原因: 在Windows的消息处理中,子窗口的发给其父窗口的通知消息只能由其父窗口进行处理,这使得子窗口的自身能动性大大降低(你想,它连改变自己的背景色,处理一个自身滚动问题都要其父窗口来转载 2014-10-15 16:01:11 · 826 阅读 · 0 评论 -
Windows 消息机制详解
总的来说:MSG包括:窗口句柄,指示MSG发送的目的窗口消息标识lPARAM、wParam发送时间发送时的鼠标位置 关于消息队列:Windows系统有一个系统消息队列每个线程都有一个自己的消 息队列(由于发送消息MSG需 要提供一个窗口HWnd,而基 本有窗口的线程,都是UI线 程),因此基本上如果线程使用了GDI函数,则windows给该线程分配一个线程消翻译 2014-10-14 11:05:43 · 1358 阅读 · 0 评论 -
VS2008中定位代码前一个大括号的方法
一直在找定位前一个大括号的方法,今天终于发现了,有时候一个代码块特别长,要调到前面部分,只能拉动滚动条,特别麻烦,今天想想,要将光标移动的前一个大括号,应该是先将光标移动到后一个大括号内侧,再用方向键才行,单独用方向键肯定不行,所以要加组合键,组合键一般也就是ctrl, shift, alt几个了,用试的办法了,最后发现时alt+方向键(上)。哈哈,以后可以省点事了。 今天发原创 2015-05-14 17:45:27 · 3027 阅读 · 2 评论 -
GDI和GDI+枚举字体
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-05-29 10:25:48 · 974 阅读 · 0 评论