windows 内核dll

DLL文件说明

后缀 为 .exe是 应用程序, .py 的python的  .rar  .zip的是压缩文件 .txt 是文本文档  
.dll的是 应用程序扩展 文件  

DLL文件为动态链接库 (全称是 Dynamic Link Library),又称应用程序扩展

在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

DLL文件就相当于 模块  优点 简化代码

调用方法 可以使用导入库的方法 和  LoadLibrary 函数 加载函数的方式调用

kernel32.dll

路径: c:windowssystem32

属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。

有关进程 内存的操作都可以用这个模块实现

CreatMutex

很多程序都有多开限制,比如游戏 DNF 任何一款不能多开的游戏,都不可以多开
就是因为用了 互斥体,

一个程序或一个项目要求不能多开 ,这个时候就要如何防止多开

1. CreatMutex

原理:创建一个互斥体,并检查它是否已经有拥有者,如果有,表明互斥体已经建立(程序已经启动),否则表明程序未启动。

2. 使用窗口属性

原理:在程序启动时,枚举桌面所有窗口,并检查其属性列表中是否存在特殊的属性值,如果有则表明程序已经启动,否则程序未启动。

3.使用公共文件

原理:程序启动时,在一个公共目录(比如C:或者Temp目录)中创建一个公共文件,并将此文件设置为不共享读写。第二个程序启动时,也打开此文件,如果打开成功,则表示程序未启动过,否则表示程序已经启动。

CloseHandle关闭句柄


万能关闭句柄

ReadProcessMemory 读内存


是一个内存操作的函数 5个参数

HANDLE hProcess, // 被读取进程的句柄;

LPCVOID lpBaseAddress, // 读的起始地址;

LPVOID lpBuffer, // 存放读取数据缓冲区;

DWORD nSize, // 一次读取的字节数;

LPDWORD lpNumberOfBytesRead // 实际读取的字节数;

WriteProcessMemory 写内存

hProcess , 进程的句柄

lpBaseAddress, 写入进程的位置

lpBuffer, 数据当前存放地址

nSize, 数据的长度

lpNumberOfBytesWritten,实际数据的长度

nSize以字节为单位,一个字节Byte等于8位

user32.dll


比如红蜘蛛 置顶问题,所有关于窗口的操作 这个模块都可以实现,比如 改变窗口大小,改窗口标题 取标题,取坐标,闪动,是否置顶,最大化,最小化

user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。

FindWindowA 寻找窗口 (类名,标题)

类名是 window 内部标识该窗口的名字

返回的是一个窗口句柄

MoveWindow 设置窗口位置和大小()


有6个参数

hWnd指定了窗口的句柄

x指定了CWnd的左边的新位置。

y指定了CWnd的顶部的新位置。

nWidth指定了CWnd的新宽度。

nHeight指定了CWnd的新高度。

bRepaint指定了是否要重画CWnd。如果为TRUE
原文地址:https://www.cnblogs.com/bladecheng/p/11203487.html