找回密码
 加入
搜索
查看: 5455|回复: 9

[AU3基础] 检测D盘是否存在,是否为硬盘,是否格式化是否可写入数据 已解决

  [复制链接]
发表于 2010-5-29 12:25:33 | 显示全部楼层 |阅读模式
本帖最后由 m765555 于 2010-9-21 15:36 编辑

本人想写一个软件自动安装到D盘,源码已写好,但仔细想了一下有些不完美,问题在于:
D盘存在吗?是硬盘吗,可写吗,如果是新分的区的话,还存在没有格式化就不能写入数据的问题。问题一想一大堆。请各位高手指点一下小弟,在此先谢了!本人QQ76555051
发表于 2010-5-29 12:28:36 | 显示全部楼层
先建立个文件试试
 楼主| 发表于 2010-5-29 12:33:38 | 显示全部楼层
补充一下, 有些代码是集各位高手的源码借签而来的,我上传了两个au3文件,其中一个是包含文件,缺少不得,另个360的安装文件是7.1版本的,我没有上传,请各位自己下载,下载后命名为360Safesetup.exe,两个au3文件和一个360的exe安装文件放到一起就可以运行了。喜欢的朋友可以下载,高手请飘过。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-5-29 12:37:36 | 显示全部楼层
谢谢thesnow 的回贴,请给个简单点的实例可以吗?比如成功则安装软件,失败则退出
发表于 2010-5-29 14:30:01 | 显示全部楼层
应该还要检查剩余空间是否够安装用~
发表于 2010-5-29 15:11:48 | 显示全部楼层
#include <File.au3>

$test = CkDrive_WS('D:', '200') ;检测D盘是否有200MB可供读写
If $test Then MsgBox(0, '', 'OK~')

Func CkDrive_WS($path, $mixFree)
        ;afan说明:检测指定盘符是否有足够的空间以供读写
        ;参数:$path = 需检测的盘符;$mixFree = 最小的需求空间(MB)
        ;返回值:正确返回1;错误返回0,并设置 @Error 为以下值:
        ;@Error = 1,指定的盘符不存在
        ;@Error = 2,指定的盘符为只读光盘
        ;@Error = 3,指定的盘符不可写或未格式化
        ;@Error = 4,剩余空间不足
        If Not FileExists($path) Then Return SetError(1, 0, 0)
        If DriveGetType($path) = 'CDROM' Then Return SetError(2, 0, 0)
        Local $tmp = _TempFile($path)
        FileWrite($tmp, '')
        If Not FileExists($tmp) Then Return SetError(3, 0, 0)
        FileDelete($tmp)
        Local $DSFree = DriveSpaceFree($path)
        If $DSFree < $mixFree Then Return SetError(4, 0, 0)
        Return 1
EndFunc   ;==>CkDrive_WS

评分

参与人数 1金钱 +25 收起 理由
lxsh010 + 25 谢谢,学习了!!!

查看全部评分

发表于 2010-5-29 16:35:56 | 显示全部楼层
考虑挺全面的嘛呵呵
发表于 2011-6-20 17:23:25 | 显示全部楼层
有没有高手给解决一下。如果D盘没有就自动安装到C盘里面去呢。。我只看到了这里只有检测D盘的功能。
发表于 2011-6-30 11:16:31 | 显示全部楼层
借签 前辈的代码了!~ 非常感谢 ~
发表于 2012-12-11 20:56:28 | 显示全部楼层
谢谢版主,正好用上
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-18 07:23 , Processed in 0.083335 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表