تحقق مما إذا كانت محرك الأقراص قابلة للكتابة دالة Windows API [مغلقة
سؤال
مرحبًا ، هل هناك أي وظيفة Windows API ستعود إذا كان محرك الأقراص قابلاً للكتابة. في بعض الأحيان يكون محرك الأقراص مرئيًا تحت محركات الأقراص ولكن عند محاولة الكتابة إليه برمجيًا ، فإنه يمنحك خطأ MSG Box Wich يتجمد التطبيق حتى يضغط المستخدم على زر OK. هل هناك أي وظيفة مدمجة من شأنها التحقق مما إذا كان محرك الأقراص قابلاً للكتابة بدون مربع الخطأ المزعج؟
حاولت Trycopy بالفعل وإرجاع نفس خطأ msgbox :(
شكرًا!
المحلول
حاول الاتصال SetErrorMode( SEM_FAILCRITICALERRORS)
لمنع مربعات رسائل الخطأ من الظهور.
http://msdn.microsoft.com/en-us/library/ms680621(vs.85).aspx
نصائح أخرى
يمكنك تعيين مرجع إلى Microsoft Scripting Runtime.
يمكنك بعد ذلك استخدام رمز مثل:
Dim FSO as New FileSystemObject
Dim clsDrive as Scripting.Drive
Set clsDrive=FSO.GetDrive("C")
يحتوي فئة محرك الأقراص على خاصية Freespace ، والتي ستكون صفرًا إذا لم يكن محرك الأقراص قابلاً للكتابة.
علاوة على ذلك ، هناك فئة Scripting.Folder التي يمكنك het باستخدام fso.getfolder () تحتوي على خاصية سمات ، والتي تتكون من أعلام من النوع FileAttribute. يمكنك استخدام رمز مثل
clsFolder.Attributes And FileAttribute.Readonly
للتحقق من err ... readonness ؛-)
مكالمة getVolumeInformation () وتحقق FILE_READ_ONLY_VOLUME
في المعلمة الأعلام التي تم إرجاعها.