【 二进制】Windows API 记录

FindWindow

 

原型:

HWND FindWindow(
  LPCTSTR lpClassName,
  LPCTSTR lpWindowName
);

 

该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配,这个函数不查找子窗口,在查找时不区分大小写。
 
示例:FindWindow(NULL, L"植物大战僵尸中文版");
 
参数:
 
lpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用 theGlobafAddAtom 函数产生的全局成员。该成员为 16 位,必须位于 lpClassName 的低 16 位,高位必须为 0
 
lpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配
 
返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为 NULL
 

GetWindowThreadProcessId

原型:
DWORD GetWindowThreadProcessld(
  HWND hwnd,
  LPDWORD lpdwProcessld
);

 

函数功能:该函数返回创建指定窗口线程的标识和创建窗口的进程的标识符,后一项是可选的。
 
示例:GetWindowThreadProcessId(hwnd_Game, &ProcessID)

参数:
 
hWnd: 窗口句柄
 
lpdwProcessld: 接收进程标识的 32 位值的地址。如果这个参数不为 NULL,GetWindwThreadProcessld 将进程标识拷贝到这个 32 位值中,否则不拷贝
 
返回值:返回值为创建窗口的线程标识
 

OpenProcess

 
原型:
HANDLE OpenProcess(
  DWORD fdwAccess,
  BOOL fInherit,
  DWORD IDProcess
);

 

函数功能:OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄
 
示例:OpenProcess(PROCESS_ALL_ACCESS, false, ProcessID)
 
参数:
 
dwDesiredAccess:访问权限
 
bInheritHandle:继承标志
 
dwProcessId:进程 ID
 

WriteProcessMemory

 
原型:
BOOL WriteProcessMemory(
  HANDLE hProcess,
  LPVOID lpBaseAddress,
  LPVOID lpBuffer,
  DWORD nSize,
  LPDWORD lpNumberOfBytesWritten
);

 

函数功能:该函数在指定的进程中写入内存。 必须写入整个区域,否则操作将失败
 
示例:WriteProcessMemory(h_process, (LPVOID)0x20194DC8, &num, 4, NULL)
 
参数:
 
hProcess:从OpenProcess函数返回的句柄,该函数提供了对该进程的完全访问权限
 
lpBaseAddress:指向指定进程中的基址的指针
 
lpBuffer:指向缓冲区的指针,该缓冲区提供要写入指定进程的地址空间的数据
 
nSize:指定要写入指定进程的请求字节数
 
lpNumberOfBytesWritten:指向转移到指定进程中的字节数的指针,此参数是可选的,如果lpNumberOfBytesWritten为NULL,则忽略该参数
 
 
 
posted @ 2019-10-10 19:37  yichen0115  阅读(120)  评论(0编辑  收藏