a000000 发表于 2010-3-6 21:15:00

用AU3能做到修改硬盘的活动与否吗?[已解决]

本帖最后由 a000000 于 2010-3-8 09:22 编辑

7524将磁盘分区标为活动的,或者将磁盘分区标为不活动的

zmj2008 发表于 2010-3-7 02:41:53

估计高手是能修改的   应为autoit3 是脚本

pusofalse 发表于 2010-3-7 06:09:39

活动与非活动的区别在于各自分区表的第一个字节,活动分区第一个字节为0x80,非活动为0x00,那么是否可以根据这个区别来将非活动转换为活动呢?~

gapkiller 发表于 2010-3-7 11:17:44


Run("diskpart /s active.txt")
#cs
active.txt 内容如下
select disk 0
select partition 1
active
exit
#ce

a000000 发表于 2010-3-7 12:34:47


gapkiller 发表于 2010-3-7 11:17 http://www.autoitx.com/images/common/back.gif


    还是用了txt,能不能单文件做到这点?

afan 发表于 2010-3-7 13:17:19

回复 5# a000000


    4#可行的话你增加个写入临时文件的代码不就解决了

gapkiller 发表于 2010-3-7 13:22:58

还是用了txt,能不能单文件做到这点?
a000000 发表于 2010-3-7 12:34 http://www.autoitx.com/images/common/back.gif


    FileInstall()

pusofalse 发表于 2010-3-7 13:24:11

#include <SetupApi.au3>

Const $tagPARTITION_TABLE = "byte MbrData;byte ActiveFlags;byte StartTrack;short StartSC;byte FileSystem;byte EndTrack;short EndSC;dword LogicalStartSector;dword SectorsCount"

Local $hDisk, $pBuffer, $tBuffer, $fResult, $iDesiredAccess, $fActivate = 1

$pBuffer = _CM_Heap_Alloc(512)
$tBuffer = DllStructCreate($tagPARTITION_TABLE, $pBuffer)
$iDesiredAccess = bitOR($GENERIC_READ, $GENERIC_WRITE)

$hDisk = _CM_Create_File("\\.\H:", $iDesiredAccess, 3, 0, 3, 0)
_CM_Device_IO_Control($hDisk, 0x90018, 0, 0, 0, 0)
_CM_Read_Device($hDisk, $pBuffer, 512)
_CM_Device_IO_Control($hDisk, 0x9001C, 0, 0, 0, 0)
_CM_Close_Handle($hDisk)

If ($fActivate) Then
        DllStructSetData($tBuffer, "ActiveFlags", 0x80) ; Activate the partition
Else
        DllStructSetData($tBuffer, "ActiveFlags", 0x00) ; Un-activate
EndIf

$hDisk = _CM_Create_File("\\.\H:", $iDesiredAccess, 3, 0, 3, 0)
_CM_Device_IO_Control($hDisk, 0x90018, 0, 0, 0, 0)
_CM_Write_Device($hDisk, $pBuffer, 512)
_CM_Device_IO_Control($hDisk, 0x9001C, 0, 0, 0, 0)
_CM_Close_Handle($hDisk)
_CM_Assign_Var($tBuffer, 0, _CM_Heap_Free($pBuffer))

Msgbox(0, "", "Done~!")

afan 发表于 2010-3-7 13:30:22

建议操作硬件首先了解 pusofalse 超版出品的 SetupApi.au3 库

llztt 发表于 2010-3-7 18:15:24

终于逼得pusofalse 写出例子了,哈哈

zhhsh 发表于 2011-1-20 17:50:22

谢谢了,终于找到这个例子

syhw222 发表于 2011-1-23 15:16:08

谢谢pusofalse

z761003 发表于 2011-11-27 03:31:55

那改成不活动的呢??{:face (332):}

syhw2222 发表于 2012-1-26 11:46:48

谢谢了,认真学习学习!
页: [1]
查看完整版本: 用AU3能做到修改硬盘的活动与否吗?[已解决]