HOOK字体安装、内存读写、本地热键、拖放消息、托盘图标

易语言 2020-08-15 19:15:55

HOOK字体安装、内存读写、本地热键、拖放消息、托盘图标

函数地址 = API_GetProcAddress (API_GetModuleHandle (“kernel32”), “LoadLibraryA”)
进程句柄 = API_OpenProcess (#PROCESS_ALL_ACCESS, 0, 进程ID)
.如果真 (进程句柄 = 0)
返回 (假)
.如果真结束
内存指针 = API_VirtualAllocEx (进程句柄, 0, 1024, #MEM_COMMIT, #PAGE_READWRITE)
.如果真 (内存指针 = 0)
返回 (假)
.如果真结束
API_WriteProcessMemory (进程句柄, 内存指针, DLL路径, 取文本长度 (DLL路径), 0)
远程线程ID = API_CreateRemoteThread (进程句柄, 0, 255, 函数地址, 内存指针, 0, 0)
WaitForSingleObject (远程线程ID, #INFINITE)
API_VirtualFreeEx (进程句柄, 内存指针, 1024, #MEM_DECOMMIT)
API_CloseHandle (进程句柄)

文件路径 = 编辑框_文件.内容
.如果真 (文件是否存在 (文件路径) = 假)
信息框 (“文件无效”, 0, )
返回 ()
.如果真结束
窗口句柄 = 到整数 (编辑框_句柄.内容)
.如果真 (IsWindow (窗口句柄) = 0)
信息框 (“窗口句柄无效”, 0, )
返回 ()
.如果真结束
GetWindowThreadProcessId (窗口句柄, 进程ID)
.如果真 (进程ID = 0)
信息框 (“取进程ID失败”, 0, )
返回 ()
.如果真结束
进程句柄 = OpenProcess (位或 (#PROCESS_VM_OPERATION, #PROCESS_VM_WRITE), 0, 进程ID)
.如果真 (进程句柄 = 0)
信息框 (“打开进程失败,可以尝试提升进程权限”, 0, )
返回 ()
.如果真结束
数据指针 = VirtualAllocEx (进程句柄, 0, 取文本长度 (文件路径) + 21, #MEM_COMMIT, #PAGE_READWRITE)
.如果真 (数据指针 = 0)
信息框 (“申请内存失败”, 0, )
返回 ()
.如果真结束
写入数据 = 到字节集 (20) + 取空白字节集 (16) + 到字节集 (文件路径)
WriteProcessMemory (进程句柄, 数据指针, 取字节集指针 (写入数据), 取文本长度 (文件路径) + 21, 写入大小)
.如果真 (写入大小 ≠ 取文本长度 (文件路径) + 21)
信息框 (“写入文件路径失败”, 0, )
返回 ()
.如果真结束
SendMessage (窗口句柄, #WM_DROPFILES, 数据指针, 0)
VirtualFreeEx (进程句柄, 数据指针, 取文本长度 (文件路径) + 21, #MEM_FREE)
CloseHandle (进程句柄)