【发布时间】:2014-12-19 15:07:10
【问题描述】:
我正在尝试制作一个 Python 3.3 程序来格式化 Windows 中的驱动器,例如 SD 卡或 USB 记忆棒。我在这里尝试了代码:http://bytes.com/topic/python/answers/537724-formatting-device-script-windows。起初它给了我一个错误,但经过一些调整后它没有。它运行了,但我的 USB 驱动器没有任何反应。这是我正在使用的代码。 (顺便说一句,这是使用 ctypes 模块)请帮忙!
def myFmtCallback(command, modifier, arg):
print(command)
return 1 # TRUE
def format_drive(Drive, Format, Title):
fm = windll.LoadLibrary('fmifs.dll')
FMT_CB_FUNC = WINFUNCTYPE(c_int, c_int, c_int, c_void_p)
FMIFS_HARDDISK = 0x0C
fm.FormatEx(c_wchar_p(Drive), FMIFS_HARDDISK, c_wchar_p(Format),
c_wchar_p(Title), True, c_int(0), FMT_CB_FUNC(myFmtCallback))
我相应地调用函数:
format_drive('F:\\', 'NTFS', 'USBDrive')
程序会打印出来:
>>>
9
11
【问题讨论】:
-
你是如何使用你的函数的?您如何将(以及哪些)参数传递给函数?
-
小心这个。
-
小心什么?
-
我不知道你的参数是什么意思,但是当程序运行时回调会打印出来:>>> 9 11
-
@Luke:
myFmtCallback传递了三个参数:命令、修饰符和参数。打印命令和参数。也许修饰符也是。该参数提供了额外的信息,例如它是否失败。
标签: python windows python-3.x ctypes