
Windows相关
文章平均质量分 51
smstong
创新来自于夯实的基础。
展开
-
Build your own KMS server to activate MS Windows and MS Office
网速问题,不常来优快云了,想要阅读更多博文,请访问我的个人博客站。http://linuxexam.netNote: It's illegal to activate Windows/Office by a non-authorized KMS server. This article is for learning purpose only. Buy a license from Mic...原创 2019-05-17 08:11:59 · 2396 阅读 · 0 评论 -
重温WIN32 API ------ 一个简单的UDP服务器类
最近一个项目需要使用简单的UDP进行通信,为方便调用,使用C++类封装了一个简单的UDP服务器类。1 基本思路网络通信程序设计中最难的部分就是IO的处理,不同操作系统平台提供不同的IO处理机制,Windows平台有select模型、完成端口等,Linux平台则是poll和epoll。由于本项目要求简单,通信量也不大,所以没有采用这些与平台相关的IO模型,而是采用简单的专用线程来负责侦听。当收到数据原创 2014-12-22 18:07:37 · 5180 阅读 · 1 评论 -
重温 Win32 API ----- 截屏指定窗口并打印
朋友说在一个VC++6.0开发的项目中要加入打印窗口的功能,让帮忙写个代码供其调用。这么老的IDE当然不想碰了,而且也不喜欢MFC笨拙不清晰的封装,所以决定采用纯Win32 API,然后用C++类简单封装一下。1 基本思路窗口DC和打印机DC是两类不兼容的DC,所以它们之间传送位图只能通过DIB。首先,通过BitBlt()把要打印窗口的客户区拷贝到DDB内存位图中,然后通过GetDIBits()把原创 2014-12-22 17:12:57 · 13691 阅读 · 1 评论 -
一个通过捕获ARP发现IP的小工具
0 由来公司接入层交换机划分了很多Vlan,每个Vlan对应一个IP子网,各个房间所属Vlan号非常混乱。有时候,电脑IP丢失或新配电脑时,不能知道到底该配置那个IP网段。解决办法就是,登录交换机,查看电脑MAC出现在哪一个交换机Vlan中。问题是,这需要额外的能正常上网的计算机来登录交换机。是否有其他方法能知道一个给定端口的IP段呢?方法是有的,那就是直接使用链路层的以太网来捕获ARP包,并从中原创 2015-01-08 19:49:37 · 3525 阅读 · 5 评论 -
第三次遇到同样DNS无法解析的问题,不得不把解决方法分享了
症状:DNS服务器设置正确,而且也能够ping通,但是就是无法解析域名,如www.baidu.com这个域名,使用nslookup查询会报告未知主机。浏览器访问域名会显示找不到主机。原因分析:首先排除了DNS设置问题,能ping通DNS服务器,又排除了网络层的问题。只剩下DNS客户端软件的问题了,重启后仍不好用,进一步预测为Windows socket的问题。解决办法:超级简单,在命令行窗口运行原创 2014-11-27 21:18:02 · 13327 阅读 · 0 评论 -
百度也作孽!hao123protect.sys导致系统蓝屏
客户Windows XP系统今天突然频繁蓝屏,原创 2014-08-14 13:31:14 · 12137 阅读 · 1 评论 -
通过SPY++实测WinForm和WPF控件的差异
作为Windows桌面UI开发的两大.net开发库,WinForm和WPF同时存在着。之所以功能如此重合的两个库同时存在,是因为两者的底层差异非常大,WinForm底层依赖于传统的Win32API,特别是User32.dll;而WPF则底层依赖于Direct3D。 而我们知道User32和Direct3D两者是平行存在,彼此独立的。WPF之前几乎所有的WindowsUI开发都依赖于User32,当原创 2014-04-01 20:45:17 · 5218 阅读 · 0 评论 -
VS2013 C#WinForm程序构造界面拖动控件NumericUpDown时"未响应“是有道词典惹的祸
很久之前遇到过因为金山词霸和其他软件冲突导致的程序无响应的情况。没想到今天情况重现,VS2013在可视化编辑NumbericUpDown控件的时候,又出现了”未响应“,发现又是有道词典惹的祸。可见屏幕取词功能还是应该好好研究的,希望微软和有道之间能协调解决一下!!!原创 2014-03-11 15:37:44 · 6462 阅读 · 7 评论 -
使用VC++进行项目开发的API抉择
1 根本目的视图与逻辑隔离、易于不同平台的移植,易于逻辑开发人员和视图开发人员的协作。2 基本原则同样功能的前提下,优先选择标准C++库的API程序逻辑部分拒绝使用MFC只在界面和必须使用MFC的情况下,使用MFC 3 选择结果数据结构,如链表、哈希表、队列等,使用标准C++库,如std::vector;线程、进程、同步等与UI无直接关联的部分,使用W原创 2014-02-27 19:24:14 · 1577 阅读 · 0 评论 -
VC++自动生成的对话框类头文件中的enum {IDD= xxxx}解释
1 MFC中对话框类和对话框资源之间的联系使用VC++ MFC做开发的时候,经常需要插入对话框资源,然后根据这个资源生成相应的对话框类文件。类文件和对话框资源之间的联系纽带就是对话框控件ID,与其他资源ID一样,也是一个整数而已,只不过VC++开发环境在resource.h文件中增加了一个宏定义来描述这个整数而已。下面是一个对话框类的头文件。#pragma once// CT原创 2014-02-15 10:41:03 · 15470 阅读 · 0 评论 -
从GDI到GDI+使用的坐标系看微软二维绘图思路的进步
1 微软Windows绘图系统使用的三种坐标系为了便于绘制,微软在其绘图系统中引入了三种不同的坐标系,这三种坐标系都是平面直角坐标系,下面从坐标系的三要素即度量单位、坐标原点、坐标轴方向分别对其进行说明。1.1 设备坐标系顾名思义,设备坐标系是依据绘图使用的硬件设备而定义的。其度量单位为像素,x轴向右为正,y轴向下为正。至于坐标原点则可以通过SetViewPortOrg()进行设定。原创 2014-02-27 18:52:14 · 4723 阅读 · 0 评论 -
VC++中独立捕获按钮按下和抬起两个动作
1 由来现实世界中的按钮的动作为:按下后只要不松手就一直处于被按下状态,此时会执行开关闭合等类似的行为;松开手后,按钮抬起,执行开关断开等类似行为。VC++中默认的按钮的外观行为与物理按钮类似,也是鼠标按下后保持被按下状态,松开鼠标则自动弹起。然而问题是,按钮只会在按下-抬起 这个过程完成后才会向父窗口发送WM_COMMAND消息,单独的按下以及单独的抬起都不会通知父窗口。在工原创 2014-02-12 00:53:49 · 18736 阅读 · 15 评论 -
因以下文件的损坏或丢失,Windows无法启动【解决方法】
【现象描述】【原因分析】(1)由于某种原因(如正常关机)导致这个文件损坏或丢失;(2)文件本身没有问题,但是机器读取出错。【解决方法】对于原因(1),解决方法可以按照故障时系统给出的提示,用Windows安装盘进行修复,但是这种方式非常慢,而且现在大多数都是Ghost版,系统安装盘不容易找到。其实,我们完全没有必要非得使用系统安装盘来修复。在PE盛行的今天,完全可以借助独立原创 2014-01-20 12:12:52 · 132099 阅读 · 0 评论 -
浅谈C中的wprintf和宽字符显示【其实很深】
今天在优快云的Blog首页看到一篇文章“也谈计算机字符编码 ”,由于前一阵业余翻译了“UTF-8 and Unicode FAQ for Unix/Linux”一文,自己对字符集、编码和Unicode等内容一直保着者很强的兴趣,自然不会放过这样的文章。作者的文章写得很明白易懂,虽然有一些概念上的细节问题我觉得有商榷之处;作者还给出一个简单的在windows下使用wprintf正确输出转载 2014-01-21 23:48:29 · 20023 阅读 · 2 评论 -
重温WIN32 API ------ 窗口上绘制位图文件
1 基本思路做界面仿真时,经常需要在窗口上贴图,随着图片数量的增多,通过资源文件中添加位图的方式会变得越来越不可控。所以本着“资源与程序分离“的原则,还是使用外部位图文件更加清晰明了。那么如何管理位图的贴图位置呢?如果写死到程序代码中,则又会导致耦合行过高的问题。容易想到解决方法有两个,一是使用一个单独的xml文件来记录图片文件名称和贴图位置的关系,二是直接把贴图位置信息包含进位图文件的文件名中。原创 2014-12-22 18:49:42 · 9505 阅读 · 0 评论 -
MSDN中关于SetWindowLongPtr和GetWindowLongPtr函数的描述错误
MSDN中关于SetWindowLongPtr和GetWindowLongPtr函数的描述错误。原创 2015-01-13 16:36:02 · 5354 阅读 · 0 评论 -
重温WIN32 API ------ SetTimer()无窗口调用方式
#include #include #define IDT_TIMER 100void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime){ SYSTEMTIME st; GetLocalTime(&st); printf("%2d:%2d:%2d.%3d转载 2014-12-25 20:43:06 · 4963 阅读 · 0 评论 -
一点小感受:界面和程序的分离
1 Windows程序,界面和程序是源码级混合Windows系统下的GUI程序,界面(GUI)与程序其他部分逻辑上是分离的,但是源码上直接交互,界面功能直接通过调用Win32 API来实现。例:CreateWindow()。甚至线程模型很多功能都和GUI窗口绑定到了一起,如消息队列。2 Linux程序,界面和程序是通过协议通信2.1 CUI程序和文本终端通过终端协议交互原创 2016-09-07 10:27:49 · 8732 阅读 · 0 评论 -
VC++导出具有命名空间的函数
1 问题现象导出具有命名空间的函数和类。源代码如下:头文件MiniMFC.hnamespace MiniMFC{ __declspec(dllexport) void f(); class __declspec(dllexport) MyClass { public: void Mf(); };}实现文件MiniMFC.cpp#includ原创 2015-03-17 11:16:58 · 6932 阅读 · 0 评论 -
超级新手理解的字体渲染
1 啥是字体渲染所谓字体渲染,就是把指定的字形用像素表示出来,由于大部分显示设备的像素都是方形或长方形的小格子,所以也叫栅格化。字形是一种特殊的图形,专门用来表示字符,所以字体渲染也是图形渲染的重要组成部分,属于计算机图形学范畴。2 目前主要的渲染方式渲染方式本身与字体原型设计有直接关系,所以先说说字体的设计方式。大体上字体设计可以分成位图字体(点阵字体)和矢量字体。位图字体,就是用01双色位图表原创 2015-02-16 10:48:18 · 5650 阅读 · 0 评论 -
重温WIN32 API ------ 最简单的Windows窗口封装类
如果你也厌倦了复杂的MFC,这里提供了一个非常简单的把C++类、对象与窗口类、对象联系起来的方式。原创 2015-01-04 17:14:10 · 19582 阅读 · 10 评论 -
重温WIN32 API ------ Window消息跟踪
Windows操作系统的名称本身就是其核心概念--窗口。与窗口密不可分的就是消息了,本文建立一个最简单的Windows窗口程序,然后增加跟踪代码,把所有的Windows消息打印到文件中。我们知道,Windows处理消息的时候是序列化处理的,只有一个线程来完成,所以消息的处理具有严格的顺序,这也便于我们分析消息处理过程。项目代码如下:#include #include "LogWriter.h"原创 2015-01-05 13:39:41 · 4547 阅读 · 2 评论 -
DLL中建立进程共享数据段需要注意的语法问题
默认情况下,所有的数据段都是进程独立的,每个进程有自己的一份。但有时候进程共享一个数据段也是有需要的,为此VC++编译连接器提供了专门的语法,下面是一个典型的例子,建立了一个名为Shared的共享数据段,该数据段里只有一个变量g_hwndOwner。////////////////////////////////////////////// 进程共享区 //////////////////////原创 2015-01-02 17:56:10 · 3823 阅读 · 1 评论 -
父窗口与拥有者窗口(Parent VS Owner)
Owner 在窗口创建时指定,以后不能更改。“一旦拥有,一直拥有”。Parent 可以再创建时指定,以后可以更改。“父亲可以是继父”。下面文字转自:http://www.cnblogs.com/cswuyg/archive/2012/07/09/2582186.html一、 窗口的Parent、Owner关系 窗口有两种可能的上下级关系,一种是Owner,一种是parent。 创建窗口转载 2014-12-31 15:25:40 · 6273 阅读 · 1 评论 -
让Excel 只显示有限行和列
Excel默认显示很多行和列,让人感觉有点乱,有没有办法达到如下效果呢? 原理就是隐藏不想显示的行和列,然后把窗口背景色与表格的背景色区别开来。原创 2014-12-15 12:20:51 · 22169 阅读 · 1 评论 -
Windows不支持重叠子窗口、控件(overlapping controls)
同级别子窗口彼此覆盖时,Windows程序就会出现问题。尽管可以通过SetWindowPos()调整各个子窗口的z序,但是仍会存在问题。典型情况就是对话框中如果用一个子窗口覆盖整个客户区,对话框里的控件仍然会不时的露出来。设计程序时,要避免子窗口彼此重叠的问题。如果一定要重叠,解决方式是用重叠的“非子窗口”,Windows支持非子窗口重叠,但不支持overlapping controls.Chil转载 2014-12-29 20:30:18 · 2701 阅读 · 0 评论 -
VC++编译器预编译头功能(stdafx.h)原理与实践
VC++预编译头功能的原理与实践。原创 2014-12-30 15:04:25 · 5317 阅读 · 1 评论 -
用优快云的代码仓库托管VS解决方案
1 GitHub与code.youkuaiyun.comGit这个项目管理软件如今是如日中天,特别是在GitHub等公共免费git项目服务器的大力支持下,无论是开源还是私有项目越来越多地采用git进行项目管理了。GitHub是全球最稳定安全的项目托管平台,但是对国人来说有以下几点不足:(1)服务器位于国外,网速受限;(2)免费情况下,只能托管公开项目;要想托管私有项目,必须缴纳费用。 于是,昨天试了一下CSD原创 2015-01-17 12:22:43 · 3674 阅读 · 0 评论 -
使用recvfrom()接收UDP包在Windows和Linux平台的不同表现
recvfrom()接收UDP包时,在Windows和Linux平台的不同表现。原创 2014-12-25 16:58:02 · 9687 阅读 · 0 评论 -
SQL Server 客户服务器网络连接原理图
直接上图原创 2014-12-26 11:44:43 · 1772 阅读 · 0 评论 -
最简洁的Windows Service 程序C源码
#include #include #define SLEEP_TIME 5000#define LOGFILE "C:\\MyServices\\memstatus.txt"SERVICE_STATUS ServiceStatus; SERVICE_STATUS_HANDLE hStatus; void ServiceMain(int argc, char** argv);翻译 2014-01-22 00:57:31 · 2580 阅读 · 0 评论 -
基于网络远程开关机的原理与实践
计算机网络运维中,远程关闭和启动计算机是常见的任务。这可以通过开发专门的软件来实现,但实际上大多数系统都自身就原生地拥有这些功能,本文在分析原理的基础上,基于系统本身的功能详细说明了基于网络的远程开关机的步骤。1 远程开机1.1 原理网络远程开机,也被称作Wake On Lan,其原理很简单,就是计算机处于关闭状态时,网卡仍然处于激活状态,可以接收来自网络的数据包,如果收到的数据包符合原创 2013-11-22 10:24:42 · 12499 阅读 · 2 评论 -
Visual C++使用ADO操作SQL最精简例子代码
已经不使用Visual C++多年了,最近应邀为朋友修改一个现存的VC++操作SQL Server2000的老程序,所以重新回顾了一下基本的代码格式。发布到这里,以便于以后再用到时迅速复习。1 头文件stdafx.h// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件//#pragma once#inc原创 2013-09-19 12:29:37 · 7376 阅读 · 2 评论 -
__declspec(dllimport) 的作用
导读: 我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来转载 2009-12-23 21:09:00 · 1515 阅读 · 0 评论 -
深圳恒波软件公司LockDir加密软件原理与破解
1.首先,示范:给D盘一个文件夹加密,暂时命名为 tttt2.显示系统隐藏文件,我们发现tttt文件夹下多了两个文件,Thumbs.db desktop.ini 第一个是伪装成打印机的样子,其实我们加密的东西都放在里面,我们以下的破解步骤主要是对它做处理,第二个不多说了,文件夹图标相关。 ---> (如何显示系统隐藏文件 跳过,这步不会的看文章最底部)3.开始-->运行-->CMD 然后进入ttt转载 2010-03-01 17:08:00 · 21666 阅读 · 2 评论 -
Windows服务一一说明之-------Machine Debug Manager
1 官方言辞 名称:Machine Debug Manager 描述:支持对 Visual Studio 和脚本调试器进行本地和远程调试。如果该服务停止,调试器将不能正常工作。 文件位置: "C:/Program Files/Common Files/Microsoft Shared/VS7DEBUG/MDM.EXE原创 2010-02-27 11:36:00 · 7526 阅读 · 2 评论 -
关于exe或dll文件中的字符串资源
资源在WindowsGUI的程序中随处可见,这也是微软为了方便把界面和逻辑分开的优秀策略。所谓的资源就是一些用于描述界面或其他特征的说明性字符,它们有固定的格式。这点与HTML有相似之处。而微软提供了处理这些资源描述字符的函数,并上升到Win32API的高度。资源有两种存在形式,一是编译之前,此时的资源被存放到.rc文件(此文件为纯文本文件)中,在程序编译的时候,资源编译器rc.exe把.rc文件原创 2010-02-01 10:13:00 · 5787 阅读 · 0 评论 -
Windows平台OpenGL函数调用过程
原创 2009-11-18 11:34:00 · 1639 阅读 · 0 评论 -
WinInet, WinHttp, Winsock, ws2_32的基本解释
在Windows平台进行网络程序开发, 可以使用不同的库, 但是最常用的还是微软自己开发的库。具体说来,有: (1)Winsock,工作于网络层和传输层的开发库,对于编写TCP,UDP,以及原始IP通信程序非常合适。函数原形也基本符合Unix socket标准。Windows平台上的大多数程序,如QQ,讯雷等都基于其开发。 (2)ws2_32,是Winsock的升级版本,在兼容的基原创 2010-01-15 13:16:00 · 2566 阅读 · 0 评论 -
IIS的ISAPI接口简介
2007-01-31 15:45ISAPI(Internet Server Application Programming Interface)作为一种可用来替代CGI的方法,是由微软和Process软件公司联合提出的Web服务器上的API标准。ISAPI与Web服务器结合紧密,功能强大,能够获得大量的信息,因此利用ISAPI可以开发出灵活高效的Web服务器增强程序。由于ISA转载 2009-10-16 09:24:00 · 1775 阅读 · 0 评论