精易论坛

标题: 目录_监控文件修改W1 怎么实现全盘监控? [打印本页]

作者: aniushu    时间: 2023-4-11 18:51
标题: 目录_监控文件修改W1 怎么实现全盘监控?
目录_监控文件修改W1 怎么实现全盘监控?或者说结合 取驱动器列表 () 使用多线程,请大佬指点.

作者: aniushu    时间: 2023-4-11 18:58
[JavaScript] 纯文本查看 复制代码
.版本 2
.支持库 spec

.子程序 ActionProc
.参数 Action, 整数型
.参数 FileName, 整数型
.参数 FileNameLength, 整数型
.局部变量 szFileName, 字节集
.局部变量 局_原文件路径, 文本型
.局部变量 局_新文件路径, 文本型

调试输出 (“进入监控”)

szFileName = 指针到字节集 (FileName, FileNameLength)
.判断开始 (Action = #FILE_ACTION_ADDED)
    调试输出 (“新增文件”, 编码_Unicode到Ansi (szFileName))
    延时 (10)
    局_原文件路径 = 集_盘符 + 编码_Unicode到Ansi (szFileName)
    调试输出 (编码_Unicode到Ansi (szFileName))
    局_新文件路径 = 编辑框_文件保存路径.内容 + “\” + 编码_Unicode到Ansi (szFileName)
    调试输出 (“局_原文件路径” + 局_原文件路径, “局_新文件路径” + 局_新文件路径)
    调试输出 (复制文件 (局_原文件路径, 局_新文件路径))

.' 判断 (Action = #FILE_ACTION_REMOVED)
    ' 调试输出 (“删除文件”, 编码_Unicode到Ansi (szFileName))
.' 判断 (Action = #FILE_ACTION_MODIFIED)
    ' 调试输出 (“修改文件”, 编码_Unicode到Ansi (szFileName))
.' 判断 (Action = #FILE_ACTION_RENAMED_OLD_NAME)
    ' 调试输出 (“重命名文件”, 编码_Unicode到Ansi (szFileName))
.' 判断 (Action = #FILE_ACTION_RENAMED_NEW_NAME)
    ' 调试输出 (“重命名文件2”, 编码_Unicode到Ansi (szFileName))
.默认

.判断结束


作者: w5717    时间: 2023-4-11 18:58
这个是我之前写的案例,可以编译出来,放到想要监控的文件夹或盘符下即可监控。

监控文件夹.e

961.86 KB, 下载次数: 71


作者: aniushu    时间: 2023-4-11 19:50
w5717 发表于 2023-4-11 18:58
这个是我之前写的案例,可以编译出来,放到想要监控的文件夹或盘符下即可监控。 ...

单线程啊我要多线程,单线程的我已经可以监控了

作者: 小白看世界    时间: 2023-4-11 20:13
去易语言资源网找一下  ReadDirectoryChangesW  有会大神写了的 改一下就可以多线程监控了
作者: 小白看世界    时间: 2023-4-11 20:15
去易语言资源网 找ReadDirectoryChangesW   有个大佬写了一个   用线程启动就可以监控多个目录了
作者: aniushu    时间: 2023-4-12 08:28
小白看世界 发表于 2023-4-11 20:15
去易语言资源网 找ReadDirectoryChangesW   有个大佬写了一个   用线程启动就可以监控多个目录了 ...

我是没懂如何控制多线程
作者: 钥匙key    时间: 2023-4-12 10:30
aniushu 发表于 2023-4-12 08:28
我是没懂如何控制多线程

多线程不难。关键是多线程后。分别监控多个盘符时。如何区分盘符。。这个就不清楚了。
作者: aniushu    时间: 2023-4-12 11:06
钥匙key 发表于 2023-4-12 10:30
多线程不难。关键是多线程后。分别监控多个盘符时。如何区分盘符。。这个就不清楚了。 ...

刚我想到了个,不就26个盘符吗?我这样,复制26个函数出来。然后在界面中给他26个选项,界面创建完毕后使用命令取驱动器列表 (),然后给26个选项把没识别的全部禁用,识别出来的显示出来,按开始监控后分别执行没禁用的那几个函数。

作者: 钥匙key    时间: 2023-4-12 11:13
aniushu 发表于 2023-4-12 11:06
刚我想到了个,不就26个盘符吗?我这样,复制26个函数出来。然后在界面中给他26个选项,界面创建完毕后使 ...

不是这个。而是多线程后。回调里面没有盘符信息。这样一来。回调在哪个盘就不知道了。单线程是固定一个盘。多线程是多个盘同时监听。。
作者: aniushu    时间: 2023-4-12 13:27
钥匙key 发表于 2023-4-12 11:13
不是这个。而是多线程后。回调里面没有盘符信息。这样一来。回调在哪个盘就不知道了。单线程是固定一个盘 ...

哦,那我懂了。

作者: 钥匙key    时间: 2023-4-13 15:21
aniushu 发表于 2023-4-12 13:27
哦,那我懂了。

搞定了吗?
作者: aniushu    时间: 2023-4-20 22:44
钥匙key 发表于 2023-4-13 15:21
搞定了吗?

这几天头痛没写,思路有的

作者: 钥匙key    时间: 2023-4-20 22:45
aniushu 发表于 2023-4-20 22:44
这几天头痛没写,思路有的

没有想到多线程区分盘符的方法。不可能多个子程序调用。。
作者: aniushu    时间: 2023-4-21 21:32
钥匙key 发表于 2023-4-20 22:45
没有想到多线程区分盘符的方法。不可能多个子程序调用。。

我复制了很多子程序,每个子程序负责一个盘,然后可以了,就是4MB以上的文件好像只能监控删除

作者: 钥匙key    时间: 2023-4-21 21:51
aniushu 发表于 2023-4-21 21:32
我复制了很多子程序,每个子程序负责一个盘,然后可以了,就是4MB以上的文件好像只能监控删除
...

这样。有点麻烦。。
作者: 钥匙key    时间: 2023-4-21 21:54
这样行不行?类化,每个类形成一个盘符,类里面监控数据变化。这样盘符转换为类成员。类组合成数组成员。这样貌似更可控一些。
作者: 钥匙key    时间: 2023-4-24 10:02
类化一手。完美解决所有问题。

监控文件夹.e

966.46 KB, 下载次数: 19


作者: huddhudd    时间: 2023-7-21 09:54
Windows   APi 就行论坛很多例子
作者: wmiboy    时间: 2023-8-12 16:31
本帖最后由 wmiboy 于 2023-8-12 16:35 编辑


发现楼上的,已经给了。

全盘监控文件夹.e

1.08 MB, 下载次数: 13






欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4