桌面图标提示易语言源码
.版本 2
.支持库 iext
.子程序 _按钮1_被单击
.局部变量 hDeskWnd
.局部变量 dwProcessID
.局部变量 hProcess
.局部变量 pLVITEM
.局部变量 pszText, , , , ' 本源码来自三叶资源网(www.sanye.cx)
.局部变量 pItemRc
.局部变量 rc, RECT
.局部变量 LVITEM, LVITEM
.局部变量 ItemBuf, 文本型
.局部变量 nCount
.局部变量 iItem
.局部变量 r
hDeskWnd = GetWindow (GetWindow (FindWindow (“Progman”, “Program Manager”), 5), 5)
GetWindowThreadProcessId (hDeskWnd, dwProcessID)
hProcess = OpenProcess (2035711, 假, dwProcessID)
pLVITEM = VirtualAllocEx (hProcess, 0, 40, 4096, 4)
pszText = VirtualAllocEx (hProcess, 0, 512, 4096, 4)
pItemRc = VirtualAllocEx (hProcess, 0, 16, 4096, 4)
' 本源码来自三叶资源网(www.sanye.cx)
.如果 (pItemRc = 0 或 pLVITEM = 0)
信息框 (“无法分配内存!”, 16, )
.否则
LVITEM.mask = 1
LVITEM.cchTextMax = 512
LVITEM.pszText = pszText
ItemBuf = 取空白文本 (512)
nCount = SendMessage (hDeskWnd, #LVM_GETITEMCOUNT, 0, 0)
.变量循环首 (0, nCount, 1, iItem)
LVITEM.iItem = iItem
LVITEM.iSubItem = 0
WriteProcessMemory (hProcess, pLVITEM, LVITEM, 40, 0) ' 将设置好的结构插入目标进程
r = SendMessage (hDeskWnd, #LVM_GETITEMTEXTA, iItem, pLVITEM) ' 发送LVM_GETITEM消息
ReadProcessMemory_STR (hProcess, pszText, ItemBuf, 512, 0) ' 获取pszText
.如果真 (编辑框1.内容 = ItemBuf)
SendMessage (hDeskWnd, #LVM_GETITEMRECT, iItem, pItemRc)
ReadProcessMemory_RECT (hProcess, pItemRc, rc, 16, 0)
跳出循环 ()
.如果真结束
VirtualFreeEx (hProcess, pLVITEM, 0, 32768)
VirtualFreeEx (hProcess, pszText, 0, 32768)
VirtualFreeEx (hProcess, pItemRc, 0, 32768) ' 释放内存
.变量循环尾 ()
.如果结束
载入 (窗口1, , 假)
窗口1.移动 (rc.Right - 16, rc.Top + 3, , )
窗口1.透明标签1.标题 = 编辑框2.内容
.子程序 取变量数据地址_LVITEM, 整数型, , ' 本源码来自三叶资源网(www.sanye.cx)
.参数 变量, LVITEM
置入代码 ({ 139, 69, 8, 139, 0, 131, 248, 0, 116, 3, 131, 192, 8, 201, 194, 4, 0 })
返回 (0)