|
dll命令
自定义数据类型
.版本 2
.数据类型 PROCESSENTRY32
.成员 dwSize, 整数型, , , 296
.成员 cntUsage, 整数型
.成员 th32ProcessID, 整数型
.成员 th32DefaultHeapID, 整数型
.成员 th32ModuleID, 整数型
.成员 cntThreads, 整数型
.成员 th32ParentProcessID, 整数型
.成员 pcPriClassBase, 整数型
.成员 dwFlags, 整数型
.成员 szExeFile, 字节型, , "260"
.数据类型 HEAPLIST32
.成员 dwSize, 整数型, , , 16
.成员 th32ProcessID, 整数型
.成员 th32HeapID, 整数型
.成员 dwFlags, 整数型
.数据类型 HEAPENTRY32
.成员 dwSize, 整数型, , , 36
.成员 hHandle, 整数型
.成员 dwAddress, 整数型
.成员 dwBlockSize, 整数型
.成员 dwFlags, 整数型
.成员 dwLockCount, 整数型
.成员 dwResvd, 整数型
.成员 th32ProcessID, 整数型
.成员 th32HeapID, 整数型
.数据类型 MODULEENTRY32
.成员 dwSize, 整数型, , , 548
.成员 th32ModuleID, 整数型
.成员 th32ProcessID, 整数型
.成员 GlblcntUsage, 整数型
.成员 ProccntUsage, 整数型
.成员 modBaseAddr, 整数型
.成员 modBaseSize, 整数型
.成员 hModule, 整数型
.成员 szModule, 字节型, , "256"
.成员 szExePath, 字节型, , "260"
.数据类型 THREADENTRY32
.成员 dwSize, 整数型, , , 28
.成员 cntUsage, 整数型
.成员 th32ThreadID, 整数型
.成员 th32OwnerProcessID, 整数型
.成员 tpBasePri, 整数型
.成员 tpDeltaPri, 整数型
.成员 dwFlags, 整数型
.数据类型 VS_FIXEDFILEINFO
.成员 Signatur, 整数型
.成员 StrucVersion, 整数型
.成员 FileVersionMS, 整数型
.成员 FileVersionLS, 整数型
.成员 ProductVersionMS, 整数型
.成员 ProductVersionLS, 整数型
.成员 FileFlagsMask, 整数型
.成员 FileFlags, 整数型
.成员 FileOS, 整数型
.成员 FileType, 整数型
.成员 FileSubtype, 整数型
.成员 FileDateMS, 整数型
.成员 FileDateLS, 整数型
源码
New ()变量名 | 类 型 | 静态 | 数组 | 备 注 | hSnapShot | 整数型 | | | End | 整数型 | | | buffer | PROCESSENTRY32 | | | 进程名 | 文本型 | | 0 | 进程ID | 整数型 | | 0 | 默认堆ID | 整数型 | | 0 | 模块ID | 整数型 | | 0 | 父进程ID | 整数型 | | 0 | 线程数 | 整数型 | | 0 | 线程基本优先级 | 整数型 | | 0 | 引用数 | 整数型 | | 0 |
超级列表框1. 全部删除 ()hSnapShot = CreateToolhelp32Snapshot (2, 0 )buffer.dwSize = 296 End = Process32First (hSnapShot, buffer )判断循环首 (End ≠ 0 )加入成员 (进程名, 到文本 (buffer.szExeFile )) 加入成员 (进程ID, buffer.th32ProcessID )加入成员 (默认堆ID, buffer.th32DefaultHeapID )加入成员 (模块ID, buffer.th32ModuleID )加入成员 (父进程ID, buffer.th32ParentProcessID )加入成员 (线程数, buffer.cntThreads )加入成员 (线程基本优先级, buffer.pcPriClassBase )加入成员 (引用数, buffer.cntUsage )End = Process32Next (hSnapShot, buffer )判断循环尾 ()CloseHandle (hSnapShot )End = 取数组成员数 (进程名 )_启动窗口.标题 = “当前进程数:” + 到文本 (End )计次循环首 (End, hSnapShot )超级列表框1. 插入表项 (-1, 进程名 [hSnapShot ], , , , 进程ID [hSnapShot ])超级列表框1. 置标题 (hSnapShot - 1, 1, bw (取十六进制文本 (进程ID [hSnapShot ])) )超级列表框1. 置标题 (hSnapShot - 1, 2, 到文本 (线程基本优先级 [hSnapShot ])) 超级列表框1. 置标题 (hSnapShot - 1, 3, 到文本 (线程数 [hSnapShot ])) 超级列表框1. 置标题 (hSnapShot - 1, 4, 到文本 (引用数 [hSnapShot ])) 超级列表框1. 置标题 (hSnapShot - 1, 5, bw (取十六进制文本 (父进程ID [hSnapShot ])) )超级列表框1. 置标题 (hSnapShot - 1, 6, bw (取十六进制文本 (默认堆ID [hSnapShot ])) )超级列表框1. 置标题 (hSnapShot - 1, 7, bw (取十六进制文本 (模块ID [hSnapShot ])) )计次循环尾 ()返回 (取重复文本 (8 - 取文本长度 (a ), “0”) + a )变量名 | 类 型 | 静态 | 数组 | 备 注 | hSnapShot | 整数型 | | | End | 整数型 | | | buffer | MODULEENTRY32 | | | 模块路径 | 文本型 | | 0 | 模块名 | 文本型 | | 0 | 模块ID | 整数型 | | 0 | 模块句柄 | 整数型 | | 0 | 全局引用数 | 整数型 | | 0 | 引用数 | 整数型 | | 0 | 模块基址 | 整数型 | | 0 | 模块大小 | 整数型 | | 0 |
超级列表框2. 全部删除 ()如果真 (超级列表框1.现行选中项 ≠ -1 )hSnapShot = CreateToolhelp32Snapshot (8, 超级列表框1. 取表项数值 (超级列表框1.现行选中项 )) buffer.dwSize = 548 End = Module32First (hSnapShot, buffer )判断循环首 (End ≠ 0 )加入成员 (模块名, 到文本 (buffer.szModule )) 加入成员 (模块路径, 到文本 (buffer.szExePath )) 加入成员 (模块ID, buffer.th32ModuleID )加入成员 (模块句柄, buffer.hModule )加入成员 (全局引用数, buffer.GlblcntUsage )加入成员 (引用数, buffer.ProccntUsage )加入成员 (模块基址, buffer.modBaseAddr )加入成员 (模块大小, buffer.modBaseSize )End = Module32Next (hSnapShot, buffer )判断循环尾 ()CloseHandle (hSnapShot )计次循环首 (取数组成员数 (模块名 ), hSnapShot )超级列表框2. 插入表项 (-1, 模块名 [hSnapShot ], , , , 模块句柄 [hSnapShot ])超级列表框2. 置标题 (hSnapShot - 1, 1, 模块路径 [hSnapShot ])超级列表框2. 置标题 (hSnapShot - 1, 2, bw (取十六进制文本 (模块ID [hSnapShot ])) )超级列表框2. 置标题 (hSnapShot - 1, 3, bw (取十六进制文本 (模块基址 [hSnapShot ])) )超级列表框2. 置标题 (hSnapShot - 1, 4, 到文本 (四舍五入 (模块大小 [hSnapShot ] ÷ 1024, 2 )) + “ KB”)超级列表框2. 置标题 (hSnapShot - 1, 5, 到文本 (引用数 [hSnapShot ])) 超级列表框2. 置标题 (hSnapShot - 1, 6, 到文本 (全局引用数 [hSnapShot ])) 计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | hSnapShot | 整数型 | | | End | 整数型 | | | buffer | THREADENTRY32 | | | 线程ID | 整数型 | | 0 | 线程基本优先级 | 整数型 | | 0 | 线程优先级 | 整数型 | | 0 | 引用数 | 整数型 | | 0 |
超级列表框3. 全部删除 ()如果真 (超级列表框1.现行选中项 ≠ -1 )hSnapShot = CreateToolhelp32Snapshot (4, 0 )buffer.dwSize = 28 End = Thread32First (hSnapShot, buffer )判断循环首 (End ≠ 0 )如果真 (buffer.th32OwnerProcessID = 超级列表框1. 取表项数值 (超级列表框1.现行选中项 )) 加入成员 (线程ID, buffer.th32ThreadID )加入成员 (线程基本优先级, buffer.tpBasePri )加入成员 (线程优先级, buffer.tpDeltaPri )加入成员 (引用数, buffer.cntUsage )End = Thread32Next (hSnapShot, buffer)判断循环尾 ()CloseHandle (hSnapShot )计次循环首 (取数组成员数 (线程ID ), hSnapShot )超级列表框3. 插入表项 (-1, bw (取十六进制文本 (线程ID [hSnapShot ])), , , , 线程ID [hSnapShot ])超级列表框3. 置标题 (hSnapShot - 1, 1, 到文本 (线程基本优先级 [hSnapShot ])) 超级列表框3. 置标题 (hSnapShot - 1, 2, 到文本 (线程优先级 [hSnapShot ])) 超级列表框3. 置标题 (hSnapShot - 1, 3, 到文本 (引用数 [hSnapShot ])) 计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | hSnapShot | 整数型 | | | End | 整数型 | | | buffer1 | HEAPLIST32 | | | buffer2 | HEAPENTRY32 | | | 堆ID | 整数型 | | 0 | 堆标志 | 整数型 | | 0 | 堆位置 | 整数型 | | 0 | PID | 整数型 | | | 块句柄 | 整数型 | | 0 | 块基址 | 整数型 | | 0 | 块尺寸 | 整数型 | | 0 | 块标志 | 整数型 | | 0 | 块锁定次数 | 整数型 | | 0 | size | 整数型 | | | high | 整数型 | | |
树型框1. 清空 ()如果真 (超级列表框1.现行选中项 ≠ -1 )PID = 超级列表框1. 取表项数值 (超级列表框1.现行选中项 )hSnapShot = CreateToolhelp32Snapshot (1, PID )buffer1.dwSize = 16 End = Heap32ListFirst (hSnapShot, buffer1 )判断循环首 (End ≠ 0 )加入成员 (堆ID, buffer1.th32HeapID )加入成员 (堆标志, buffer1.dwFlags )End = Heap32ListNext (hSnapShot, buffer1 )判断循环尾 ()CloseHandle (hSnapShot )计次循环首 (取数组成员数 (堆ID ), hSnapShot )buffer2.dwSize = 36 End = Heap32First (buffer2, PID, 堆ID [hSnapShot ])size = 0 判断循环首 (End ≠ 0 )加入成员 (块句柄, buffer2.hHandle )加入成员 (块基址, buffer2.dwAddress )加入成员 (块尺寸, buffer2.dwBlockSize )size = size + buffer2.dwBlockSize 加入成员 (块标志, buffer2.dwFlags )加入成员 (块锁定次数, buffer2.dwLockCount )End = Heap32Next (buffer2 )判断循环尾 ()判断 (堆标志 [hSnapShot ] = 1 )high = 树型框1. 加入项目 (-1, “堆ID:” + bw (取十六进制文本 (堆ID [hSnapShot ])) + “ - 尺寸:” + 到文本 (size ) + “字节 - 标志:默认”, , , 堆标志 [hSnapShot ])判断 (堆标志 [hSnapShot ] = 2 )high = 树型框1. 加入项目 (-1, “堆ID:” + bw (取十六进制文本 (堆ID [hSnapShot ])) + “ - 尺寸:” + 到文本 (size ) + “字节 - 标志:共享”, , , 堆ID [hSnapShot ])high = 树型框1. 加入项目 (-1, “堆ID:” + bw (取十六进制文本 (堆ID [hSnapShot ])) + “ - 尺寸:” + 到文本 (size ) + “字节”, , , 堆ID [hSnapShot ])计次循环首 (取数组成员数 (块句柄 ), End )判断 (块标志 [End ] = 1 )树型框1. 加入项目 (high, “块句柄:” + bw (取十六进制文本 (块句柄 [End ])) + “ - 块基址:” + bw (取十六进制文本 (块基址 [End ])) + “ - 块尺寸:” + 到文本 (块尺寸 [End ]) + “字节 - 标志:固定 - 块锁定次数:” + 到文本 (块锁定次数 [End ]), , , )判断 (块标志 [End ] = 2 )树型框1. 加入项目 (high, “块句柄:” + bw (取十六进制文本 (块句柄 [End ])) + “ - 块基址:” + bw (取十六进制文本 (块基址 [End ])) + “ - 块尺寸:” + 到文本 (块尺寸 [End ]) + “字节 - 标志:空闲 - 块锁定次数:” + 到文本 (块锁定次数 [End ]), , , )判断 (块标志 [End ] = 4 )树型框1. 加入项目 (high, “块句柄:” + bw (取十六进制文本 (块句柄 [End ])) + “ - 块基址:” + bw (取十六进制文本 (块基址 [End ])) + “ - 块尺寸:” + 到文本 (块尺寸 [End ]) + “字节 - 标志:可移动 - 块锁定次数:” + 到文本 (块锁定次数 [End ]), , , )树型框1. 加入项目 (high, “块句柄:” + bw (取十六进制文本 (块句柄 [End ])) + “ - 块基址:” + bw (取十六进制文本 (块基址 [End ])) + “ - 块尺寸:” + 到文本 (块尺寸 [End ]) + “字节 - 块锁定次数:” + 到文本 (块锁定次数 [End ]), , , )计次循环尾 ()计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | Info | 字节集 | | | Size | 整数型 | | | VerPointer | 整数型 | | | Len | 整数型 | | | Ver | 字节集 | | | language | 文本型 | | | 文件名 | 文本型 | | |
编辑框1.内容 = “”文件名 = 超级列表框1. 取标题 (超级列表框1.现行选中项, 0 )Size = GetFileVersionInfoSize (文件名, 0 )如果真 (Size = 0 )返回 ()Info = 取空白字节集 (Size)GetFileVersionInfo (文件名, 0, Size, Info )如果真 (VerQueryValue (Info, “\VarFileInfo\Translation”, VerPointer, Len ) = 0 )返回 ()Ver = 取空白字节集 (Len)MoveMemory (Ver, VerPointer, Len )language = bw (取十六进制文本 (取字节集数据 (Ver, 3 )) )language = 取文本右边 (language, 4 ) + 取文本左边 (language, 4 )计次循环首 (12, Size )如果真 (VerQueryValue (Info, “\StringFileInfo\” + language + “\” + 多项选择 (Size, “Comments”, “CompanyName”, “FileDescription”, “FileVersion”, “InternalName”, “LegalCopyright”, “LegalTrademarks”, “OriginalFilename”, “PrivateBuild”, “ProductName”, “ProductVersion”, “SpecialBuild”), VerPointer, Len ) ≠ 0 )Ver = 取空白字节集 (Len )MoveMemory (Ver, VerPointer, Len )文件名 = 取字节集数据 (Ver, 10 )如果真 (文件名 ≠ “”)编辑框1. 加入文本 (多项选择 (Size, “备注”, “公司名”, “描述”, “文件版本”, “内部名称”, “版权”, “合法商标”, “原文件名”, “个人用编译版说明”, “产品名称”, “产品版本”, “特殊编译版说明”) + “:” + 文件名 + #换行符 )计次循环尾 ()_超级列表框1_左键单击表项 ()New ()判断 (选择夹1.现行子夹 = 0 )模块信息 ()判断 (选择夹1.现行子夹 = 1 )线程信息 ()判断 (选择夹1.现行子夹 = 2 )堆信息 ()版本信息 ()如果真 (信息框 (“要强行终止吗?”, 33, ) = 0 )handle = OpenProcess (1, 假, 超级列表框1. 取表项数值 (超级列表框1.现行选中项 )) TerminateProcess (handle, 0 )CloseHandle (handle )New ()_超级列表框1_左键单击表项 ()
|
|