ممكن طريقة الحصول على أيقونة البارتشين وبعض المعلومات الاساسية عن البارتشين مثل مساحته وكمية المساحة المستخدمه والباقيه وبعض المعلومات الاخرى
الحصول على أيقونة البارتشين الحالية
السلام عليكم
يمكن الحصول على ايقون البارتيشن من خلال دول API
اما للحصول على معلومات كل بارتيشن استخدم System.IO.DriveInfo
مرفق مثال يوضح ما سبق
تم تعديل هذه المشاركة بواسطة SOLO.NET في 19 نوفمبر 2013 في 01:33
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

الف شكر عبد الخالق :)
تم الحصول على الايفونه ووضعتها داخل picturebox :huh:
وتم الحصول على جميع المعلومات عن الداريفر لكن الvolume label دائما تكون فاضيه الحقيقه مش عارف ليش -_-
ممكن مساعده او توضيح ما هي الvolume label :excl:
ولو سمحت ممكن طريقة كلي احصل على المساحه بالGB مش byte
تم تعديل هذه المشاركة بواسطة JBR07 في 19 نوفمبر 2013 في 19:13
السلام عليكم
الــVolum Label هو اسم الدرايف الذى يقوم المستخدم باسناده له كلك يمين على اى درايف لديك rename وسيظهر من خلال drv.VolumeLabel
لتحويل الى GB من بايت فقط نقسم على 1024/1024/1024
نعمل داله كالتالي
Private Function GetSizeInGB(size As Long) As Double
Return (size / 1024 / 1024 / 1024)
End Functionنعدل فى كود المثال السابق فى الحدث form Load ليصبح كالتالي
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListView1.LargeImageList = ImageList1
For Each drv As System.IO.DriveInfo In My.Computer.FileSystem.Drives
ImageList1.Images.Add(GetDriveIcon(drv.Name, IconSize.LargeIcon))
Dim newItem As New ListViewItem(drv.Name, Index)
Index = Index + 1
If Not drv.DriveType = IO.DriveType.Removable Then
newItem.SubItems.Add("Total Siz in GB :" + GetSizeInGB(drv.TotalSize).ToString("0.00") + "GB " + "Volume Label :" + drv.VolumeLabel)
End If
ListView1.Items.Add(newItem)
Next
End Subوهذا الكود للفورم بالكامل
Imports System.Runtime.InteropServices
Imports System.Drawing
Public Class Form1
<Flags()> Private Enum SHGFI
SmallIcon = &H1
LargeIcon = &H0
Icon = &H100
DisplayName = &H200
Typename = &H400
SysIconIndex = &H4000
UseFileAttributes = &H10
End Enum
Public Enum IconSize
SmallIcon = 1
LargeIcon = 0
End Enum
<StructLayout(LayoutKind.Sequential)> _
Private Structure SHFILEINFO
Public hIcon As IntPtr
Public iIcon As Integer
Public dwAttributes As Integer
<MarshalAs(UnmanagedType.LPStr, SizeConst:=260)> Public szDisplayName As String
<MarshalAs(UnmanagedType.LPStr, SizeConst:=80)> Public szTypeName As String
Public Sub New(ByVal B As Boolean)
hIcon = IntPtr.Zero
iIcon = 0
dwAttributes = 0
szDisplayName = vbNullString
szTypeName = vbNullString
End Sub
End Structure
Private Declare Auto Function SHGetFileInfo Lib "shell32" (ByVal pszPath As String, ByVal dwFileAttributes As Integer, ByRef psfi As SHFILEINFO, ByVal cbFileInfo As Integer, ByVal uFlagsn As SHGFI) As Integer
Public Function GetDriveIcon(ByVal Path As String, Optional ByVal IconSize As IconSize = IconSize.SmallIcon, Optional ByVal SaveIconPath As String = "") As Icon
Dim info As New SHFILEINFO(True)
Dim cbSizeInfo As Integer = Marshal.SizeOf(info)
Dim flags As SHGFI = SHGFI.Icon Or SHGFI.UseFileAttributes
flags = flags + IconSize
SHGetFileInfo(Path, 256, info, cbSizeInfo, flags)
GetDriveIcon = Icon.FromHandle(info.hIcon)
If SaveIconPath <> "" Then
Dim FileStream As New IO.FileStream(SaveIconPath, IO.FileMode.Create)
GetDriveIcon.Save(FileStream)
FileStream.Close()
End If
End Function
Private Index As Integer = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListView1.LargeImageList = ImageList1
For Each drv As System.IO.DriveInfo In My.Computer.FileSystem.Drives
ImageList1.Images.Add(GetDriveIcon(drv.Name, IconSize.LargeIcon))
Dim newItem As New ListViewItem(drv.Name, Index)
Index = Index + 1
If Not drv.DriveType = IO.DriveType.Removable Then
newItem.SubItems.Add("Total Siz in GB :" + GetSizeInGB(drv.TotalSize).ToString("0.00") + "GB " + "Volume Label :" + drv.VolumeLabel)
End If
ListView1.Items.Add(newItem)
Next
End Sub
Private Function GetSizeInGB(size As Long) As Double
Return (size / 1024 / 1024 / 1024)
End Function
End Classتم تعديل هذه المشاركة بواسطة SOLO.NET في 19 نوفمبر 2013 في 22:28
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

الكود شغال تمام تسلم ايديك
سؤال
هل توجد طريقة لقفل الدرايفر بكلمة سر بالvb.net
سواء باستخدام bitlocker او اي طريقه اخرى؟؟؟
بانتظاركم يا اخوان
برنامج يقوم باغلاق البارتشين بس المشكله انو ما بنحط عليه باسورد للبارتشين فقط يقوم باغلاقه عن طريق الريجستري
رابط السورس كود
http://www.mediafire.com/download/cut82zdt2wl37fr/Drive%2520Locker.rar
:)
السلام عليكم
بخصوص الــBit Locker يمكن برمجته من خلال
Win32_EncryptableVolume classراجع الرابط التالى MSDN
http://msdn.microsoft.com/en-us/library/aa376483.aspx
المثال المرفق يوضح كيفيه معرفه حاله البارتشن
اما لتطبيق الطرق Method للكلاس اعلاه استخدم
InvokeMethod
مثلا لنفرض ان لدينا درايف مشفر بالبت لوكر نفك تشفيره باستدعاء Decrypt
mo.InvokeMethod("Decrypt", Nothing, Nothing).ToStringللمزيد راجع MSDN
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

السلام عليكم
بخصوص الــBit Locker يمكن برمجته من خلال
Win32_EncryptableVolume class
راجع الرابط التالى MSDN
http://msdn.microsoft.com/en-us/library/aa376483.aspx
المثال المرفق يوضح كيفيه معرفه حاله البارتشن
الكود كالتالي
نضيف فئة للمشروع ولنسميه WMIHelper
Imports System.Management
Public Class WMIHelper
Public Shared Function DriveStatus() As List(Of String)
Dim BitLocker As List(Of String) = New List(Of String)()
Dim path As ManagementPath = New ManagementPath()
path.Server = Environment.MachineName
path.NamespacePath = "\root\CIMV2\Security\MicrosoftVolumeEncryption"
path.ClassName = "Win32_EncryptableVolume"
Dim options As ConnectionOptions = New ConnectionOptions()
Dim scope As ManagementScope = New ManagementScope(path, options)
Dim getOptions As ObjectGetOptions = New ObjectGetOptions()
Dim management As ManagementClass = New ManagementClass(scope, path, getOptions)
Dim volumes As ManagementObjectCollection = management.GetInstances()
For Each mo As ManagementObject In volumes
''هنا نقوم بفك التشفير للبت لوكر
'If mo("ProtectionStatus").ToString = "1" Then
' BitLocker.Add(mo.InvokeMethod("Decrypt", Nothing, Nothing).ToString)
'End If
BitLocker.Add(mo("DriveLetter").ToString)
BitLocker.Add(mo("ProtectionStatus").ToString)
Next
Return BitLocker
End Function
End Classفى الفورم نضيف TextBox ونجعل الخاصيه MutiLine True
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txtBLInfo.Multiline = True
If My.User.IsInRole("administrators") = True Then
For Each s As String In WMIHelper.DriveStatus
Select Case s
Case "0"
txtBLInfo.Text = txtBLInfo.Text + "PROTECTION OFF" + vbCrLf
Case "1"
txtBLInfo.Text = txtBLInfo.Text + "PROTECTION ON" + vbCrLf
Case "2"
txtBLInfo.Text = txtBLInfo.Text + "PROTECTION UNKNOWN" + vbCrLf
Case Else
txtBLInfo.Text = txtBLInfo.Text + s
End Select
Next
Else
MessageBox.Show("Administrators access rights are required.", "Not Administrator")
End
End If
End Sub
End Classولا تنسى ان تضيف Reference System.managment
اما لتطبيق الطرق Method للفئة Win32_EncryptableVolume استخدم
InvokeMethod
مثلا لنفرض ان لدينا درايف مشفر بالبت لوكر نفك تشفيره باستدعاء Decrypt
mo.InvokeMethod("Decrypt", Nothing, Nothing).ToStringللمزيد راجع MSDN
تم تعديل هذه المشاركة بواسطة SOLO.NET في 23 نوفمبر 2013 في 07:53
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

في الحقيقة لم افهم كيف استطيع اقفال بارتشين بالكود :blush:
اتمنى توضح اكثر :rolleyes:
مثلا الكود التالى يقوم بتشفير الدرايف F
Public Shared Function DriveStatus() As List(Of String)
Dim BitLocker As List(Of String) = New List(Of String)()
Dim path As ManagementPath = New ManagementPath()
path.Server = Environment.MachineName
path.NamespacePath = "\root\CIMV2\Security\MicrosoftVolumeEncryption"
path.ClassName = "Win32_EncryptableVolume"
Dim options As ConnectionOptions = New ConnectionOptions()
Dim scope As ManagementScope = New ManagementScope(path, options)
Dim getOptions As ObjectGetOptions = New ObjectGetOptions()
Dim management As ManagementClass = New ManagementClass(scope, path, getOptions)
Dim volumes As ManagementObjectCollection = management.GetInstances()
For Each mo As ManagementObject In volumes
'هنا نقوم بعمل كلمه السر ومن ثم التشفير وثم اغلاق الدرايف
If mo("ProtectionStatus").ToString = "0" And mo("DriveLetter").ToString = "G:" Then
Dim s() As Object = {"My PAssword", "MyPAssword123"}
Dim i() As Object = {0, 0}
Dim op As New System.Management.InvokeMethodOptions
mo.InvokeMethod("ProtectKeyWithPassphrase", s)
mo.InvokeMethod("Encrypt", i)
mo.InvokeMethod("Lock", i)
End Ifتم تعديل هذه المشاركة بواسطة SOLO.NET في 24 نوفمبر 2013 في 02:29
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده
