تحقق مما إذا كانت محرك الأقراص قابلة للكتابة دالة Windows API [مغلقة

StackOverflow https://stackoverflow.com/questions/3646538

سؤال

مرحبًا ، هل هناك أي وظيفة 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 في المعلمة الأعلام التي تم إرجاعها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top