怎样用易语言取一个进程的路径啊?要具体代码,不要网址。

怎样用易语言取一个进程的路径啊?要具体代码,不要网址。,第1张

.版本 2

.程序集 窗口程序集1

.子程序 _按钮1_被单击

信息框 (进程名取路径 (), 0, )

.子程序 进程名取路径, 文本型

.局部变量 hSnapShot, 整数

.局部变量 End, 整数型

.局部变量 buffer, PROCESSENTRY32

.局部变量 buf, 文本型

.局部变量 hProcess, 整数型

.局部变量 hbuf, 整数型, , "255"

.局部变量 pid, 整数型

hSnapShot = CreateToolhelp32Snapshot (2, 0)

buffer.dwSize = 296

End =耐慎 Process32First (hSnapShot, buffer)

.判断循环首 (End ≠ 0)

.如果真 (到大写 (到文本 (buffer.szExeFile)) = 到大写 (编辑嫌塌框1.内容))

pid = buffer.th32ProcessID

跳出循环 ()

.如果真结束

End = Process32Next (hSnapShot, buffer)

.判断循环尾 ()

CloseHandle (hSnapShot)

hProcess = OpenProcess (1024, 假, pid)

buf = 取空白文本 (255)

' 第一种

GetProcessImageFileName (hProcess, buf, 255)

buf = DOS路径转换_ (buf)

' 第二种

' GetModuleFileNameExA (hProcess, 模块句柄 [1], buf, 255)

' GetLongPathNameA (buf, buf, 255)

CloseHandle (hProcess)

返回 (删尾空 (buf))

.子程序 DOS路径转换_, 文本型

.参数 txt, 文本型

.局部变量 buf_, 文本型

.局部变量 buf, 字节集

.局部变量 size, 整数型

.局部变量 数组, 字节集, , "0"

.局部变量 驱动器数目, 整数型

.局部变量 n, 整数型

.局部变量 逻辑驱动器, 文本型, , "0"

.局部变量 DOS设备, 文本型, , "0"

size = GetLogicalDriveStringsA (0, { })

buf = 取空白字节集 (size)

GetLogicalDriveStringsA (size, buf) ' 获取逻辑驱动器文本

数组 = 分割字节集 (buf, { 0 }, )

驱动器数目 = 取数组成员数 (数组) - 1

.如果真 (驱动器数目 > 0)

重定义数组 (逻辑驱动器, 假, 驱动器数目)

重定义数组 (DOS设备, 假, 驱动器数目)

.计次循环首 (驱动器数目, n)

buf = 数组 [n]

buf [取字节集长度 (buf)] = 0

逻辑驱动器 [n] = 到文本 (buf)

buf_ = 取空白文本 (260)

QueryDosDeviceA (逻辑驱动器 [n], buf_, 260)

DOS设备 [n] = buf_

.计次循环尾 ()

n = 0

.计次循环首 (驱动器数目, n)

.如果真 (寻找文本 (txt, DOS设备 [n], , 真) ≠ -1)

' 把路径中类似于 \Device\HarddiskVolume1 的部分用 C:、D:等对应代替

txt = 子文本替换 (txt, DOS设备 [n], 逻辑驱动器 [n], 0, 1, 假)

返昌者敬回 (txt)

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真结束

返回 (txt)

.版本 2

.子程序 取程序路径, 文本型, 公开, 取指定进程名的程序启动路径(成功返回路径,失败或进程不存在返回空)

.参数 进程名, 文本型, , 程序进程名

.参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写

.局部变量 进程列表, 进程信息_

.局部变量 进程数, 整数型

.局部变量 进程快照, 整数型

.局部变量 临时, 整数型

.局部变量 临时路径, 文本型

.局部变量 临时进程名, 文本型

.局部变量 snap, 整数型

.局部变量 mod, 模块信息型

进程快照 = _创建快照 (15, 0)

.如果真 (进程快照 = 0)

信息框 (“创建进程快照失败”, 0, )

返回 (“”)

.如果真结束

进程数 = 0

进程列表.dwSize = 296

临时 = _第一个 (进程快照, 进程列表)

.判断循环首 (临时 ≠ 0)

进程数 = 进程数 + 1

snap = _创建快照 (8, 进程列表.进程ID)

mod.size = 1024

_第一个模块 (snap, mod)

临时路径 = 取字节集数据 (到字节集 (mod.模块完整路径), 10, )

_关闭悔高对象 (snap)

.如果真 (进程列表.进程ID ≠ 0)

临时进程名 = 到文本 (进程列表.进程名称)

.如果 (区分大小写)

.如果真 (临时进程名 = 进程名)

_关闭对象 (进程快照)

.如果真 (寻找文本 (临时路径, “?”, , 假) > 0)

返回 (“”)

.如果真结束

返回 (临时路径)

.如果真结束

.否则

.如果真 (到小写 (临拦枣时进程名) = 到小写 (进程名))

_关闭对象 (进程快照)

.如果真 (寻找文本 (临时路径, “?”简前拆, , 假) > 0)

返回 (“”)

.如果真结束

返回 (临时路径)

.如果真结束

.如果结束

.如果真结束

临时 = _下一个 (进程快照, 进程列表)

.判断循环尾 ()

_关闭对象 (进程快照)

返回 (“”)

'--------------------------------------DLL有什么不对说声,内容比较多好像少发了几个......(下面是DLL或者自定义数据)--------------楼主可以下载个超级模块试试,里面有取进程目录的子程序

.版本 2

.数据类型 进程信息_, , 进程信息

.成员 dwSize, 整数型

.成员 cntUsage, 整数型

.成员 进程ID, 整数型

.成员 th32DefaultHeapID, 整数型

.成员 th32ModuleID, 整数型

.成员 cntThreads, 整数型

.成员 th32ParentProcessID, 整数型

.成员 pcPriClassBase, 整数型

.成员 dwFlags, 整数型

.成员 进程名称, 字节型, , "256"

.版本 2

.数据类型 模块信息型, 公开, 进程模块信息

.成员 size, 整数型

.成员 mid, 整数型

.成员 pid, 整数型

.成员 gusage, 整数型

.成员 pusage, 整数型

.成员 base, 整数型

.成员 大小, 整数型

.成员 模块句柄, 整数型

.成员 模块文件名, 字节型, , "256"

.成员 模块完整路径, 字节型, , "256"

.版本 2

.DLL命令 _创建快照, 整数型, , "CreateToolhelp32Snapshot"

.参数 falg, 整数型

.参数 id, 整数型


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12490776.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存