社区
进程/线程/DLL
帖子详情
vista 下 SHFileOperation 内部复制文件是调用的是哪个api ?
vincentcsdn
2007-05-23 05:50:23
我知道2003及以下的系统 SHFileOperation 内部是调用 CopyFileExW 来复制文件的,
但是我发现到了 vista下, SHFileOperationW 内部不再调用 CopyFile 或 CopyFileEx.复制文件了,我手上只有测试版的vista, 跟踪起来显示不了正确的符号.
谁研究过这个? 请教一下?!
谢谢!
...全文
480
8
打赏
收藏
vista 下 SHFileOperation 内部复制文件是调用的是哪个api ?
我知道2003及以下的系统 SHFileOperation 内部是调用 CopyFileExW 来复制文件的, 但是我发现到了 vista下, SHFileOperationW 内部不再调用 CopyFile 或 CopyFileEx.复制文件了,我手上只有测试版的vista, 跟踪起来显示不了正确的符号. 谁研究过这个? 请教一下?! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suffocater
2008-01-12
打赏
举报
回复
我的开发平台是XP+VC++2008,有多个多线程,静态链接MFC。
我的程序里面也有关于文件的操作。所有工作线程都会使用CFileFind去等待某个特定文件的查找结果,如果等不到就一直运行,直到找到了以后才终止。
程序开发完以后在开发机上测试,长时间一直运行,至少8个小时后,CPU占用率仍然保持在15%以下,其他程序可以正常启动和运行,系统运行速度正常。移到Vista以后出现异常。程序CPU占用率随时间推移在增加,到最后达到90%以上,退出屏幕保护程序都起码需要20秒钟,退出屏幕保护程序以后其他程序都无法正常启动,仿佛系统资源被耗尽,甚至在关闭该进程以后系统都长时间不能恢复启动时的效率,除非重新启动。不运行该程序则不会出现异常,确定是程序的问题。任务管理器中内存使用量一直保持不变,所以不太认为是内存泄漏。
各位以前有遇到过这种现象吗?一般会是什么问题导致的?急需帮助。
vincentcsdn
2007-05-30
打赏
举报
回复
vista下 SHFileOperation 和 SHFileOperationEx都是直接使用ReadFile和WriteFile复制文件的。这样似乎可以使SHFileOperation产生的进度窗口计算的时间更准确一些。(-.-)))
healer_kx
2007-05-24
打赏
举报
回复
Maybe啊。
nooning
2007-05-24
打赏
举报
回复
dfz(小羽) 的回答经典
还有就是 ZwOpenFile
dfz
2007-05-24
打赏
举报
回复
最后还是调用内核函数ZwCreateFile ZwWriteFile之类的。
yjgx007
2007-05-24
打赏
举报
回复
mark. study.
healer_kx
2007-05-24
打赏
举报
回复
这个确实得关注一下了,。MARK
verybigbug
2007-05-24
打赏
举报
回复
Vista下用这个IFileOperation 接口了。
SH
File
Operation
文件
操作
SH
File
Operation
文件
操作
服务器
文件
监控源代码
使用detours Hook
SH
File
Operation
实现
文件
监控,拦截系统对于
文件
的操作,
vista
以上的版本不支持,由于
vista
以后
文件
操作改为com里面的方法。
系统自带的拷贝、移动、删除和重命名Demo
windows系统自身提供了一套拷贝、移动、删除和重命名
文件
的windows
sh
ell函数,而不需要
调用
系统的Copy
File
等
api
函数。 提供了两种函数接口,分别是
vista
版本前的
SH
File
Operation
和之后版本的I
File
Operation
接口 通过代码中修改获取使用method将可以在两种方法之间切换。
PB利用
API
-
SH
File
Operation
文件
操作函数 实现多
文件
及
文件
夹的删除
复制
等操作
PB的
文件
操作能力比较弱,自带的一些函数功能太简单,一遇上些稍微复杂些的需求(如多
文件
删除,
文件
夹的删除等)并不是非常好用,所以利用windows的
API
来实现相应的功能就成了最好的选择,而这其中,
SH
File
Operation
又是最好用的,其实我说的这些并不新鲜,网上也有相关的例子,但是网上现在能找到的例程都是PB10以前的,由于从PB10开始,编码从ANSI改成了UNICODE,所以在参数的传
调用
windows
复制
对话框
复制
文件
调用
windows
复制
对话框
复制
文件
一:结果演示1).
复制
演示2). 提示覆盖3). 不提示覆盖二. C#源代码三. AutoIt 源代码四.
文件
说明及下载 命令行
调用
windows
复制
对话框
复制
文件
,C#版可能有些Bug报错, 请测试使用! 一:结果演示 1).
复制
演示 2). 提示覆盖 3). 不提示覆盖 二. C#源代码 using System; using System.Collections.Generic; using System.Linq; using System.Tex
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章