
Windows系统
圆月弯刀丶
重剑无锋 大巧不工
展开
-
windows消息机制(MFC)
消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范围系统定义消息ID范围:[0x0转载 2016-08-22 16:33:42 · 549 阅读 · 0 评论 -
WINDOWS后台服务程序编写
在2000/XP等基于NT 的操作系统中,有一个服务管理器,它管理的后台进程被称为 service。服务是一种应用程序类型,它在后台运行,与 UNIX 后台应用程序类似。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web 服务器、数据库服务器以及其他基于服务器的应用程序。后台服务 程序是在后台悄悄运行的。我们通过将自己的程序登记为服务,可以使转载 2013-04-23 17:20:46 · 986 阅读 · 0 评论 -
提升进程权限-OpenProcessToken等函数的用法
提升进程权限文章一:在枚举/结束系统进程或操作系统服务时,会出现自己权限不足而失败的情况,这时就需要提升自己进程到系统权限,其实提升权限的代码很简单的,看到过的最经典的应该是《WINDOWS核心编程》第四章中操作进程给出的那个函数了,如果我们真的不了解它的操作也不要紧,因为只要在你需要的地方调用下面这个函数就是了,以下是它的代码:BOOL EnablePriv(){HAND转载 2013-02-28 14:00:54 · 2794 阅读 · 0 评论 -
使用ExitProcess()结束本进程、TerminateProcess 结束进程
进程只是提供了一段地址空间和内核对象,其运行时通过其他地址空间内的主线程来体现的。当主线程的进入点函数返回时,进程也就随之而技术。这种进程的种植方式是进程的正常退出。进程中的所有县城资源都能够得到正确的清除。除了这种进程的正常退出方式之外,优势还需要在程序中通过代码来强制结束本进程或其他进程的运行。ExitProcessvoid ExitProcess(UINT uExitCode);转载 2013-02-28 11:33:42 · 10401 阅读 · 0 评论 -
完成端口(CompletionPort)详解
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿转载 2013-01-22 20:59:46 · 1413 阅读 · 1 评论 -
Windows API的时间结构体、时间转换及时间获取
Windows API的时间结构体、时间转换及时间获取时间格式:DosDateTime FileTime SystemTime | | |使用上面 LocalFileTime FileName 系统时间和本地时间格式的时间: (本地时区)转载 2013-01-22 21:26:55 · 2213 阅读 · 0 评论 -
Windows API函数大全
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一转载 2013-01-22 22:24:23 · 841 阅读 · 0 评论 -
Windows编程基础 - 概述
1.1、Windows的介绍 Windows是一种基于图形界面的多任务操作系统。为这个环境开发的程序有着相同的外观和命令结构。对用户 来说,这使得学习使用Windows应用程序变得容易了。为了帮助开发Windows应用程序,Windows提供了大量的内建 函数以方便地使用弹出菜单、滚动条、对话框、图标和其他一些友好的用户界面应该具有的特性。 Windows运行应用程序以硬件无关的方式来转载 2013-01-22 22:28:52 · 969 阅读 · 0 评论 -
CListCtrl控件主要事件及LVN_ITEMCHANGED消息和鼠标双击列表项事件的处理
LVN_BEGINDRAG 鼠标左键正在被触发以便进行拖放操作(当鼠标左键开始拖拽列表视图控件中的项目时产生)LVN_BEGINRDRAG 鼠标右键正在被触发以便进行拖放操作(当鼠标右键开始拖拽列表视图控件中的项目时产生)LVN_BEGINLABELEDIT 开始编辑项的文本LVN_COLUMNCLICK 单击列(当鼠标单击列表视图控件列标题时产生)NM_CLICK 当鼠标转载 2016-12-27 09:47:21 · 4649 阅读 · 0 评论 -
VS修改项目解决方案名称
VS中新建一个项目,如果开发工作都接近尾声,客户来要求更换项目的名称,差不多要变更整个解决方案中项目名称,引用等等,这个工作量还是很大的。上网搜索解决方法,还实验了专门的修改项目名称工具,但是最后都是一堆的错误。以下是不用工具的解决方案:一、先修改工程名/解决方案名举例,原先的工程名为OldProject 想要改成NewProject1.找到工程/解决方案所在的文件转载 2016-12-30 14:30:18 · 1126 阅读 · 0 评论 -
MFC工具栏bmp彩色图标
1.bmp基本概念 (1)色位 色位即色彩位数,指每个像素点上颜色的数据位数(bit),有色彩深度、色彩精度等等多种称法,以24位为例,表示R.G.B每原色用8位二进制数据表示,最多可表达256级浓淡,从而可以再现256x256x256=16777216种颜色。色彩数越多,图像就越生动艳丽。 (2)图片大小 位图图片大小和像素有关。像素:图片上的1个点就是1个像素。 (3)转载 2017-06-18 07:22:51 · 1957 阅读 · 0 评论 -
修改AfxMessageBox对话框标题
AfxMessageBox的对话框标题默认为项目工程的名字,对话框是为了给用户提示相关信息,而面向用户软件名字一般都与项目工程名不一样,例如软件可能是中文名。所以,有时候我们需要使AfxMessageBox弹出的对话框的标题为当前的软件名。 解决办法:在资源视图中找到String Table并打开,修改ID为AFX_IDS_APP_TITLE的标题为自己想要的值就可以了。转载 2017-07-24 16:28:24 · 947 阅读 · 0 评论 -
详解操作系统中断
2016-11-02中断这个特性相比大家都不会陌生,稍微懂点操作系统知识的人都可以说到一二。但是要真正把中断描述清楚,以及LInux中和windows中的实现方式,这可能还是有点难度的。今天笔者就想彻头彻尾的把中断给详细分析下。 说到中断还不得不从现代操作系统的特性说起,无论是桌面PC操作系统还是嵌入式都是多任务的操作系统,而很遗憾,处理器往往是单个的,即使在硬件成本逐转载 2017-10-17 17:06:08 · 30173 阅读 · 6 评论 -
Windows消息队列,UI线程,窗口以及消息处理方式总结
1.窗口Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下:LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);窗口类型:可重叠窗口(Overlapped Windo转载 2017-09-22 10:05:14 · 759 阅读 · 0 评论 -
细说UI线程和Windows消息队列
本文转自金旭亮的博文,原文地址为:http://www.cnblogs.com/bitfan/archive/2010/01/14/1648068.html仅对原文格式做了一定调整,原文内容未做任何变更。注: 由于本人对Windows底层机理了解不深,本文如有错误,敬请指正。转载 2017-09-22 10:36:13 · 315 阅读 · 0 评论 -
MFC——LIstCtrl中嵌入Edit和Combobox控件
在MFC中经常会使用到ListCtrl控件,并且在控件中可以对单元格进行Edit的编辑或者ComboBox的编辑。实现ListCtrl中用edit和combobox编辑并数据同步,下面就是我用到的这个功能的简单实例。为了让ListCtrol能更好的为我们所用,我们创建一个CEditListCtrl类继承自CListCtrl:EditListCtrl.h转载 2017-12-01 16:11:13 · 4192 阅读 · 1 评论 -
Bat命令学习
Bat命令学习基础部分:======================================================================一、基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。 2.批处理是一种简单的程序,可以用 if 和 goto转载 2013-05-24 16:54:51 · 1444 阅读 · 0 评论 -
WinSock TCP keepalive的机理及使用
TCP 是面向连接的 , 在实际应用中通常都需要检测对端是否还处于连接中。如果已断开连接,主要分为以下几种情况: 1. 连接的对端正常关闭,即使用 closesocket 关闭连接。2. 连接的对端非正常关闭,包括对端异常关闭,网络断开等情况。 对于第一种情况,很好判断,但是对于第二种情况,可能会要麻烦一些。在网上找到了一些转载 2013-08-12 11:36:15 · 1061 阅读 · 0 评论 -
COM组件简介
COM组件简介面向对象的思想难以适应这种分布式软件模型,于是组件化程序设计思想得到了迅速的发展。按照组件化的程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行在同一台机器上,也可以运行在不同的机器上。为了实现这样的应用软件,组建程序和组建程序之间需要一些极为细致的规范, 只有组件程序遵守了这些共同的规范,然间系统才能正常运行。为此,OM转载 2013-08-13 15:01:02 · 910 阅读 · 0 评论 -
Windows IO方法
标签:一、综述 Winsock分别提供了“套接字模式”和“套接字I / O模型”,可对一个套接字上的I/O行为加以控制。其中,套接字模式用于决定在随一个套接字调用时,那些Winsock函数的行为。而另一方面,套接字模型描述了一个应用程序如何对套接字上进行的I/O进行管理及处理。 Winsock提供了两种套接字模式:锁定和非锁定。 Winsock转载 2016-05-18 17:27:20 · 767 阅读 · 0 评论 -
Windows下Android+NDK开发环境搭建
一、Android开发环境搭建1、安装JDK。 (1)简介:JDK,即Java Development Kit,是Java语言的软件开发工具包。JRE,即Java Runtime Environment,是Java的运行环境,是面向Java的使用者而非开发者。 (2)下载:点击打开链接(Oracle官网),选择对应系统的版本,我下载的是jdk-8u45-windows-转载 2015-05-30 08:09:40 · 913 阅读 · 0 评论 -
Windows驱动编程基础教程
前言 本书非常适合熟悉Windows应用编程的读者转向驱动开发。所有的内容都从最基础的编程方法入手。介绍相关的内核API,然后举出示范的例子。这本书只有不到70页,是一本非常精简的小册子。所以它并不直接指导读者开发某种特定类型的驱动程序。而是起到一个入门指导的作用。 即使都是使用C/C++语言的代码,在不同的应用环境中,常常看起来还是大相径庭。比如用TurboC++编写转载 2014-08-27 09:16:24 · 2018 阅读 · 0 评论 -
VS2008调试Release程序--Dump文件方式
在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。因为release版本来就少了很多调试信息,更何况一般都是发布出去由用户使用,crash的现场很难保留和重现。目前有一些方法可以解决:崩溃地址 + MAP文件;MAP文件;SetUnhandledExceptionFilter + Minidump转载 2014-08-19 11:54:52 · 917 阅读 · 0 评论 -
VC下Release版程序崩溃异常捕捉与查找--map文件方式
寻找Release版程发生异常退出的地方比Debug版麻烦得多。发生异常的时候windows通常会弹出一个错误对话框,点击详细信息,我们能获得出错的地址和大概的出错信息,然后可以用以下办法分析我们的程序。 一. 用MAP文件定位异常代码位置。1. 如何生成map文件打开“Project →Project Settings”,选择 C/C++转载 2014-08-19 11:00:35 · 2557 阅读 · 0 评论 -
MFC的秘密:它的静态库和动态库所在何处
1.Dependency Walker的第一道揭秘在MFC中我们写过很多静态库和动态库。这些dll都依赖于MFC;然后我们又交给别人使用,使得它们被依赖。细想一下,就可能会发现其中的不平衡。我们生成的非组件dll,要交给别人使用,必须提供h头、lib库和dll库文件;可是我们使用MFC的dll时,好像什么也没有设置,MFC不请自来的加入到我们的程序中。虽然知道这个世界,每个人其实并不是平等转载 2013-11-25 09:35:16 · 1844 阅读 · 0 评论 -
MSVC 与 CRT 之间的恩怨情仇
很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结,以及关于 MSVC 与 CRT 之间的种种恩怨情仇。如果你使用的作业系统是 Linux、Mac 或其他非 Windows 平台,你可以忽略这篇文章;如果你使用的作业系统是 Windows 平台,但没有用 Microsoft Visual Studio C++(以下简称为 MSVC)软体撰写 C++ 程式的转载 2013-11-25 09:26:36 · 2429 阅读 · 0 评论 -
windows主机资源Snmp OIDs CPU, Memory, Disk等
Windows OID' for CPU, Memory, Disk Windows CPU Utilization: OID:.1.3.6.1.2.1.25.3.3.1.2 (.iso.org.dod.internet.mgmt.mib-2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad) in HO转载 2013-11-08 09:18:27 · 1173 阅读 · 0 评论 -
在Windows下用VC编译SNMP++静态链接库snmp_pp.lib
一、相关文件的下载键接如下:http://www.agentpp.com/snmp_pp3_x/download_snmp_ppv3/download_snmp_ppv3.html下载 LIBDES-L-4.01a 和SNMP++v3.2.25。LIBDES-l-4.01a68 KB2005-01-19SNMP转载 2013-10-28 17:30:47 · 3427 阅读 · 0 评论 -
WMI技术介绍和应用——VC开发WMI应用的基本步骤
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的框架。(转载请指转载 2013-10-28 08:59:18 · 1125 阅读 · 0 评论 -
WMI_远程计算机配置
1 用户设置。 WMI远程访问需要使用一个具有管理员权限的用户,并且用户必须有密码。如果用已经建好的用户可以直接从 1.2配置用户 开始。 1.1新建一个用户 1)右击【我的电脑】,选择【管理】,弹出计算机管理 窗口。 2)在 计算机窗口中依次展开【本地用户和组】->【用户】。 3)右击【用户】,选择【新用户】,弹出新用户转载 2013-10-25 17:20:10 · 2090 阅读 · 0 评论 -
VC下WMI示例代码
WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows转载 2013-10-24 16:20:53 · 1470 阅读 · 0 评论 -
SNMP用VC实现的方法
首先来阐述几个重要的概念:1。community (共同体名):如果翻译过来可能会显得难于理解,其实你完全可以把它理解为一个带有权限的登陆账户,这是你访问网络设备的重要凭据,比如你要访问交换机, 假如交换机的community是public,其权限是只读的,那你一次用户登陆交换机就可以查看有关交换机记录的数据。如果其权限是读写的,你你就有 权修改其中的一些设置,如封锁某一个交换机的端口。大部分转载 2013-10-21 11:11:34 · 1080 阅读 · 0 评论 -
【WMI】WMI For C++/COM 调用方法
Win32 Provider不仅仅提供类和实例的信息,而且有些Provider会提供了一些方法,供用户调用。调用方法的流程如下:1)取得Provider实例对象 调用IWbemServices::GetObject方法可以取得我们想要调用的Provider类型实例,他以一个IWbemClassObject类型指针返回。 BSTR MethodName = Sys转载 2013-10-08 10:59:48 · 1871 阅读 · 0 评论 -
WaitForSingleObject的用法
WaitForSingleObject的用法 1.WaitForSingleObject的用法 DWORDWaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds );参数 h转载 2013-09-16 17:17:42 · 835 阅读 · 0 评论 -
“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容。 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础。.NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石。.NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程中转载 2013-09-06 17:30:52 · 1617 阅读 · 0 评论 -
VS打开闪退解决方案之一(可尝试)
VS打开闪退解决方案之一(可尝试)安装了VS之后,双击打开VS,闪退,右键使用管理员身份运行,也闪退。修复VS,再打开,也闪退。卸载VS,重装VS,再打开,也闪退。重装系统,安装VS,再打开,也闪退。但是上面这些情况,都可以通过 VS开发人员命令提示 中输入 devenv 正常打开VS,不闪退。但是每次都要输入命令打开VS很烦。在网上找了很多资料和方法试过,也都无效。...转载 2019-03-08 16:25:53 · 5254 阅读 · 1 评论