• 0
JBR07

الحصول على أيقونة البارتشين الحالية

سؤال

ممكن طريقة الحصول على أيقونة البارتشين وبعض المعلومات الاساسية عن البارتشين مثل مساحته وكمية المساحة المستخدمه والباقيه وبعض المعلومات الاخرى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

11 إجابة على هذا السؤال .

  • 0

السلام عليكم

يمكن الحصول على ايقون البارتيشن من خلال دول API

 

اما للحصول على معلومات كل بارتيشن استخدم  System.IO.DriveInfo

 

مرفق مثال يوضح ما سبق

WindowsApplicationDrive Letter.rar

WindowsApplicationDrive Letter.rar

تم تعديل بواسطه SOLO.NET
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الف شكر عبد الخالق :)

تم الحصول على الايفونه ووضعتها داخل picturebox :huh:

وتم الحصول على جميع المعلومات عن الداريفر لكن الvolume label دائما تكون فاضيه الحقيقه مش عارف ليش -_-

ممكن مساعده او توضيح ما هي الvolume label :excl:

ولو سمحت ممكن طريقة كلي احصل على المساحه بالGB مش byte

تم تعديل بواسطه JBR07
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

الــ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.InteropServicesImports System.DrawingPublic 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 FunctionEnd Class
تم تعديل بواسطه SOLO.NET
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الكود شغال تمام تسلم ايديك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سؤال

هل توجد طريقة لقفل الدرايفر بكلمة سر بالvb.net

سواء باستخدام bitlocker او اي طريقه اخرى؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بانتظاركم يا اخوان

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

برنامج يقوم باغلاق البارتشين بس المشكله انو ما بنحط عليه باسورد للبارتشين فقط يقوم باغلاقه عن طريق الريجستري

رابط السورس كود

http://www.mediafire.com/download/cut82zdt2wl37fr/Drive%2520Locker.rar

:)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

 

 

بخصوص الــ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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

 

 

بخصوص الــBit Locker يمكن برمجته من خلال 

Win32_EncryptableVolume class

راجع الرابط التالى MSDN

http://msdn.microsoft.com/en-us/library/aa376483.aspx

 

 

المثال المرفق يوضح كيفيه معرفه حاله البارتشن 

الكود كالتالي

نضيف فئة للمشروع ولنسميه WMIHelper

Imports System.ManagementPublic 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 FunctionEnd 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 SubEnd Class 

ولا تنسى ان تضيف Reference  System.managment

 

 

اما لتطبيق الطرق Method  للفئة Win32_EncryptableVolume  استخدم

 

 

InvokeMethod

مثلا لنفرض ان لدينا درايف مشفر بالبت لوكر نفك تشفيره باستدعاء Decrypt

mo.InvokeMethod("Decrypt", Nothing, Nothing).ToString

للمزيد راجع MSDN

WindowsApplicationBitLocker.rar

تم تعديل بواسطه SOLO.NET
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

في الحقيقة لم افهم كيف استطيع اقفال بارتشين بالكود :blush:

اتمنى توضح اكثر :rolleyes:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مثلا الكود التالى يقوم بتشفير الدرايف 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .