
Win32
fysy0000
这个作者很懒,什么都没留下…
展开
-
对话框扩展 OnCreate OnInitialDialog 控件焦点,按键回车变化
利用分隔符,获取切割部分大小 用静态控件例如图像控件代替。(获得LABEL) 拉成一条直线,然后获得大小,top==down 是裁剪的位置。记录LagerRect SmallRect利用SetWindowPos 相比MoveWindow 有设定Z序列的功能。原创 2011-08-06 15:51:29 · 1014 阅读 · 0 评论 -
HOOk 系统热键屏蔽
Ctr+Alt+Del是Winlogon的热键,WinlogoN是SYSTEM的进程,它不在当前用户的会话中,机制不一样的啦。转载 2011-08-01 21:01:04 · 3394 阅读 · 0 评论 -
HOOK
1、基本概念钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上原创 2011-08-01 23:23:04 · 3567 阅读 · 0 评论 -
防止进程被杀
就算是一些进程软件也不可以关闭 samba 我听过有人采用程序互相监控的方法来达到目的。 但这样就会占用系统资源。一个不加什么控件的纯窗体都要3占用MB内存, 如果加上我本来的那个程序,岂不是要占去十几MB内存,这对于我那个小程序来讲不不可忍受的。 请问有什么比较原创 2011-08-01 13:18:41 · 6262 阅读 · 1 评论 -
WS_EX_LAYERED 支持透明扩展属性
WS_EX_LAYERED是微软窗口扩展属性,在API层面实现了窗口透明化的功能,的确为创建酷酷窗口提供了便利然后必须警惕该属性带来的问题.例如最近希望扩展Tooltip窗口的显示效果当在绘画时使用了SetBkMode( TRANSPARENT )原创 2011-08-01 02:07:07 · 2725 阅读 · 0 评论 -
内核对象
看了Windows核心编程我暂时理解如下:1.内核对象是系统维护的,可以多个进程访问。但是不可以通过多个进程之间传递句柄访问。创建进程后,系统会为每个进程维护一个内核对象句柄表,存放的是索引和内核对象地址。 不同进程索引肯定不同2 当一CloseHandle之后内核对象不原创 2011-07-31 16:48:56 · 466 阅读 · 0 评论 -
MessageBox
HWND 参数表示MessageBox隶属的窗口,设置NULL,表示顶层窗口。表示非模态,如果设置为parent的那么paranet显示模态,可以配合MessageBeep原创 2011-07-30 17:48:22 · 607 阅读 · 0 评论 -
HOOK 避免自己程序被勾住
一直以来有个疑问,就是如果别人在你的电脑上安装了键盘钩子来监视你的键盘按键动作,我的程序怎么才能避开这些全局键盘钩子(system-wide hook)的监视.正好最近一段时间因为工作关系在研究钩子,顺便研究了一下这个问题,今天算是找到了一个解决办法.解决办法:在我的程序原创 2011-08-01 12:59:31 · 2134 阅读 · 0 评论 -
Win32 加载全局 注册表
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\APPINIT_DLLS这样当任意一个win32应用程序加载的时候,系统也同时将该dll加载到进程空间里(这可能有点过于奢侈,因为很转载 2011-07-31 12:17:42 · 678 阅读 · 0 评论 -
GetPixel SetPixel bitbil
1.使用内存DC 2.把内存DC最为成员 (避免创建多次DC)3.设置裁剪 (大幅度提高绘制效率)msdn上说BitBlt对于字节对齐的窗口效率要高,注册窗口时设置其风格CS_BYTEALIGNWINDOW和CS_BYTEALIGNCLIENT原创 2011-07-31 11:59:17 · 924 阅读 · 0 评论 -
MID Win32 消息没有做
// SMD_001.cpp : 定义应用程序的入口点。////将子窗体赋值设置为Parent为父窗体,系统自己避免窗体移动出去。这个时候坐标以父窗体客户区00开始。#include "stdafx.h"#include "SMD_001.h"#define MAX_原创 2011-07-29 23:23:30 · 655 阅读 · 0 评论 -
静态链接库 动态链接库
首先最大区别,静态链接库是在调用模块的程序编译连接过程中,将lib加入到程序中的。没连接一次加载一次内存中多分拷贝。1 制作lib库函数 因为是连接加载所以 lib X.h都是必须的。 而且默认都要在源文件目录下。 注意lib是不需要DLLMain函原创 2011-08-02 13:46:34 · 590 阅读 · 0 评论 -
内核对象 Event
人工重置Event CreateEvent(NULL,TRUE,TRUE) 但EVNET有效时候,所有调度线程可用,因为操作系统没有保证 下面是原子操作,可能大家都可以执行WaiteForSignalObjectReset()例如单核模式下,每次可以运行一个线程。线原创 2011-08-04 19:21:45 · 642 阅读 · 0 评论 -
CreateWindow
WS_BORDER 创建一个有边框的窗口 WS_CAPTION 创建一个有标题栏的窗口 WS_CHILDWINDOW(or WS_CHILD)创建一个子窗口(不能与WS_POPUP一起使用) WS_CLIPCHILDREN 当在父窗口内绘制时,把子窗口占据的区域剪原创 2011-08-06 12:53:02 · 568 阅读 · 0 评论 -
VC 单选按钮 Group
在一个组内的单选按钮,绑定值,是一个枚举 1 2 3 4原创 2011-08-06 19:17:46 · 1135 阅读 · 0 评论 -
CMenu
Menu可以看做是一个2维的表子菜单1 子菜单2 子菜单3菜单项1菜单项2子菜单是一个PopUp是弹出菜单,不能响应消息,作用弹出子菜单下面的菜单项目CMenu.GetSubMenuCMenu.GetSubItem原创 2011-08-05 20:41:47 · 1999 阅读 · 0 评论 -
获得字体信息
GetTextMetric 得到字体在屏幕上宽度高度 tmAvgWidth tmHeighGetTextExtend原创 2011-08-05 15:22:56 · 587 阅读 · 0 评论 -
命名管道
消息模式(有边界) 字节流模式(没有定界符,连续的没边界)原创 2011-08-04 16:15:13 · 593 阅读 · 0 评论 -
几种常见钩子 解释
从现在开始,介绍全部钩子类型,一共有15种。由于本人现在使用C#,所以将原文中的Function都翻译为了“方法”,实际上翻译为“函数”可能更准确。原文中的”callback function”翻译为“回调函数”。Each type of hook enables an ap转载 2011-08-03 01:20:25 · 1534 阅读 · 0 评论 -
ini reg
GetPrivateProfile 可以写入自己指定的自己文件WriteProfileString //根据系统,选择到底写入注册表还是win.ini原创 2011-08-03 22:00:42 · 494 阅读 · 0 评论 -
vc++ 向其他进程注入代码的三种方法
vc++ 向其他进程注入代码的三种方法 2008-11-21 07:32:31| 分类:C VC++ | 标签:|字号大中小订阅 导言:我们在Code project(www.codeproject.com)上可以找到许多密码间谍程转载 2011-08-04 15:07:03 · 4474 阅读 · 0 评论 -
进程权限
windows的每个用户登录系统后,系统会产生一个访问令牌(access token) ,其中关联了当前用户的权限信息,用户登录后创建的每一个进程都含有用户access token的拷贝,当进程试图执行某些需要特殊权限的操作或是访问受保护的内核对象时,系统会检查其acess to转载 2011-08-04 13:25:41 · 2250 阅读 · 0 评论 -
线程同步 线程死锁
内核对象 互斥对象 事件对象(自动) 多个进程内线程 慢 但是有超时用户对象 临界区 速度快,同一个进程内 但是容易死锁,因为没有超时线程1 得到A 再得到B线程2 得到B再得到A线程1entercriticalSection Aen原创 2011-08-04 19:46:31 · 575 阅读 · 0 评论 -
GetWindowDC 非客户区绘图
case WM_LBUTTONDOWN: re.left = 100; re.right = 200; re.top =0; re.bottom = 25; SendMessageA(hWnd,WM_原创 2011-07-29 15:45:07 · 2714 阅读 · 0 评论 -
桌面绘图
hHandle = GetDesktopWindow(); hdc = GetWindowDC(hHandle); StretchBlt(hdc,300,0,50,25,hdcClose,0,0,bitMapClose.bmWidth,bitMap原创 2011-07-29 13:18:46 · 685 阅读 · 0 评论 -
自己通过坐标转化,实现的一个按钮。绘图绘制的
// PaintTest.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "PaintTest.h"#define MAX_LOADSTRING 100// 全局变量:HINSTANCE hInst;原创 2011-07-29 12:32:33 · 858 阅读 · 0 评论 -
线程同步
互斥,信号量,事件都是内核方式的同步,临界区是用户方式原创 2011-07-26 19:46:23 · 481 阅读 · 0 评论 -
EnterCriticalSection TryEnterCriticalSection
如果EnterCriticalSection将一个线程置于等待状态,那么该线程在很长时间内就不能再次被调度。实际上,在编写得不好的应用程序中,该线程永远不会再次被赋予CPU时间。TryEnterCriticalSection函数决不允许调用线程进入等待状态。它的返回值能够指明调用原创 2011-07-26 19:32:43 · 5310 阅读 · 0 评论 -
GetMessage API 第二个参数理解
继续查看MSDN,有这样一句话:If there is an error, the return value is -1. For example, the function fails ifhWnd is an invalid window handle or lpMsg is原创 2011-07-19 14:41:21 · 714 阅读 · 0 评论 -
Win32 体会
#include#include#include#include"resource.h" //很重要,要引入资源头文件void MessageBoxPrintf(char* pszCaputre,char* Format,...) { va_list va原创 2011-07-19 01:43:39 · 479 阅读 · 0 评论 -
转的一个帖子 关于CreateBitmap
《WIDOWS程序设计》619页上说,执行下面的操作 hBitmap = CreateBitmap(7,9,5,3,NULL); 时Windows为象素位分配内存,粗略的计算此位图需要7*9*5*3即945位,相当于118个字节多一点。 (1)我不理解为什么转载 2011-07-27 17:55:49 · 894 阅读 · 0 评论 -
WIN32 透明贴图
WIN32 透明贴图原创 2011-07-27 17:06:51 · 1472 阅读 · 0 评论 -
StretchBit 翻转图片 透明
case WM_PAINT: hdcClient = BeginPaint (hwnd, &ps) ; hdcWindow = GetWindowDC (NULL) ; // BitBlt(hdcClient,-cx,0,re.rig原创 2011-07-27 13:27:19 · 760 阅读 · 0 评论 -
Win32 线程
Win32 线程原创 2011-07-26 17:54:25 · 684 阅读 · 0 评论 -
WIN32 数据类型 理解
INT 代表int,DWORD 代表 unsigned longint会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位。原创 2011-07-18 00:19:43 · 643 阅读 · 0 评论 -
StartUp启动代码体会,隐藏Console main 函数
// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include"main.h"#include#pragma comment(lib,"main.lib")void MyFuction();void MyFunction1();原创 2011-07-10 01:25:47 · 789 阅读 · 0 评论 -
GDI BitBlt 问题
hDc = BeginPaint(hWnd,&ps); //iCurRow = 0; //DrawTextA(hDc,aszScrollPosMsg,-1,&reClient,SND_FILENAME|SND_ASYNC); h_d原创 2011-07-27 12:25:37 · 683 阅读 · 0 评论 -
TransparentBt 实现原理
[ 原创文档 本文适合初级读者 已阅读64680次 ] 文档 代码 工具 透明位图的显示作者:王骏下载本文示例代码包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过转载 2011-07-27 21:27:03 · 576 阅读 · 0 评论 -
创建静态控件——静态控件是用来显示的。只要需要根据size移动其大小就好了,内部显示不用处理
HWND hwndStatic = CreateWindow(TEXT("STATIC"),//类名字是static NULL, WS_CHILD | SS_BITMAP | WS_VISIBLE,//击中类型。原创 2011-07-29 21:48:40 · 586 阅读 · 0 评论 -
静态控件(static)
静态控件(static)【ZT】2008年10月13日 星期一 下午 09:51静态控件主要用:对用户界面起说明和装饰作用。 静态控件根据其风格属性可派生出:静态图片控件、静态文本控件和静态自绘控件。 静态文本控件用来显示文本。转载 2011-07-29 21:30:49 · 989 阅读 · 0 评论