Error 1 Cannot import the following key file: Desktop_Panel_TemporaryKey.pfx. The key file may be password protected. To correct this, try to import the certificate again or manually install the certificate to the Strong Name CSP with the following key container name: VS_KEY_2ABD5493DC484376 Desktop_Panel
неправильно обновляются иконки дисков
For i = cnt - 1 To iCount Step -1
Me.Controls.Remove(Me.pDrive(i)) ' Удаляем значки
Next i
For i = 0 To iCount Step -1
Me.Controls.Remove(Me.pDrive(i)) ' Удаляем значки
Next i
For i = 0 To iCount - 1
RemoveHandler pDrive(i).MouseMove, AddressOf EventHandler ' Высвобождаем указатель на обработчик события
Me.pDrive(i).Image.Dispose()
Me.Controls.Remove(Me.pDrive(i + 1))
Next i
Array.Clear(Me.pDrive, 0, Me.pDrive.Length) ' Удаляем значки
For i = iCount To cnt - 1
RemoveHandler pDrive(i).MouseMove, AddressOf EventHandler ' Высвобождаем указатель на обработчик события
Next i
For i = cnt - 1 To iCount Step -1
Me.Controls.Remove(Me.pDrive(i)) ' Удаляем значки
Next i
Dim cDrive As System.IO.DriveInfo ' Информация о диске
Dim sDrive As String ' Хранит букву диска
Dim iCount As Integer ' Количество дисков в системе
Dim i As Integer
Static cnt As Integer ' Количество экземпляров значков дисков
iCount = My.Computer.FileSystem.Drives.Count ' Получаем количество дисков
If cnt <> iCount Then ' Если количество дисков и значков не совпадает
If cnt > iCount Then ' и если значков больше чем дисков
For i = 0 To iCount - 1
RemoveHandler pDrive(i).MouseMove, AddressOf EventHandler ' Высвобождаем указатель на обработчик события
Me.pDrive(i).Image.Dispose()
Me.Controls.Remove(Me.pDrive(i + 1))
Next i
Array.Clear(Me.pDrive, 0, Me.pDrive.Length) ' Удаляем значки
End If
cnt = iCount ' запоминаем количество значков
ReDim pDrive(iCount - 1) ' Меняем размерность массива значков
For i = 0 To iCount - 1 ' Цикл по количеству дисков
sDrive = My.Computer.FileSystem.Drives.Item(i).ToString ' Получаем букву диска
cDrive = My.Computer.FileSystem.GetDriveInfo(sDrive) ' Получаем информацию о диске
pDrive(i) = New PictureBox ' Создаём новый экземпляр картинки
AddHandler pDrive(i).MouseMove, AddressOf EventHandler ' Передаём указатель на MouseMove
''''''''''''''''''''''''''''''''''''''''''''''''''''''''' в другую процедуру.
' добавить значёк
pDrive(i).Height = 25 ' Высота значка
pDrive(i).Width = 25 ' Длина значка
pDrive(i).SizeMode = PictureBoxSizeMode.StretchImage ' Растянуть картинку в значке
Select Case cDrive.DriveType ' Получить тип диска
Case IO.DriveType.Fixed ' и загрузить картинку из
pDrive(i).Image = My.Resources.rPanel.HARD.ToBitmap ' ресурса.
Case IO.DriveType.CDRom
pDrive(i).Image = My.Resources.rPanel.CDDVD.ToBitmap
Case IO.DriveType.Network
pDrive(i).Image = My.Resources.rPanel.NET.ToBitmap
Case IO.DriveType.NoRootDirectory
pDrive(i).Image = My.Resources.rPanel.netu.ToBitmap
Case IO.DriveType.Ram
pDrive(i).Image = My.Resources.rPanel.RAM.ToBitmap
Case IO.DriveType.Removable
pDrive(i).Image = My.Resources.rPanel.usb.ToBitmap
Case IO.DriveType.Unknown
pDrive(i).Image = My.Resources.rPanel.usb.ToBitmap
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Расстановка значков
pDrive(i).Left = 75 + i * (pDrive(i).Width + 5)
pDrive(i).Top = 5
pDrive(i).BorderStyle = BorderStyle.None
pDrive(i).BackColor = Color.Transparent
pDrive(i).ContextMenuStrip = mnuDisk
pDrive(i).Tag = sDrive
LineShape4.X1 = pDrive(i).Left + pDrive(i).Height + 5
LineShape4.X2 = LineShape4.X1
Button2.Left = LineShape4.X1 + 5
Button3.Left = Button2.Left + Button2.Width + 5
Next i
Me.Controls.AddRange(pDrive)
End If
End Sub
netdemon писал(а):А это что по твоему?
Me.pDrive(i).Image.Dispose()
Array.Clear(Me.pDrive, 0, Me.pDrive.Length)
Private Sub DriveUpdate()
Dim cDrive As System.IO.DriveInfo ' Информация о диске
Dim sDrive As String ' Хранит букву диска
Dim iCount As Integer ' Количество дисков в системе
Dim i As Integer
Static cnt As Integer ' Количество экземпляров значков дисков
iCount = My.Computer.FileSystem.Drives.Count ' Получаем количество дисков
If cnt <> iCount Then ' Если количество дисков и значков не совпадает
If cnt <> 0 Then ' и если значков больше чем дисков
For i = 0 To pDrive.Count - 1
RemoveHandler pDrive(i).MouseMove, AddressOf EventHandler ' Высвобождаем указатель на обработчик события
Me.Controls.Remove(Me.pDrive(i))
Next i
Array.Clear(Me.pDrive, 0, Me.pDrive.Length) ' Удаляем значки
End If
cnt = iCount ' запоминаем количество значков
ReDim pDrive(iCount - 1) ' Меняем размерность массива значков
For i = 0 To iCount - 1 ' Цикл по количеству дисков
sDrive = My.Computer.FileSystem.Drives.Item(i).ToString ' Получаем букву диска
cDrive = My.Computer.FileSystem.GetDriveInfo(sDrive) ' Получаем информацию о диске
pDrive(i) = New PictureBox ' Создаём новый экземпляр картинки
AddHandler pDrive(i).MouseMove, AddressOf EventHandler ' Передаём указатель на MouseMove
''''''''''''''''''''''''''''''''''''''''''''''''''''''''' в другую процедуру.
' добавить значёк
pDrive(i).Height = 25 ' Высота значка
pDrive(i).Width = 25 ' Длина значка
pDrive(i).SizeMode = PictureBoxSizeMode.StretchImage ' Растянуть картинку в значке
Select Case cDrive.DriveType ' Получить тип диска
Case IO.DriveType.Fixed ' и загрузить картинку из
pDrive(i).Image = My.Resources.rPanel.HARD.ToBitmap ' ресурса.
Case IO.DriveType.CDRom
pDrive(i).Image = My.Resources.rPanel.CDDVD.ToBitmap
Case IO.DriveType.Network
pDrive(i).Image = My.Resources.rPanel.NET.ToBitmap
Case IO.DriveType.NoRootDirectory
pDrive(i).Image = My.Resources.rPanel.netu.ToBitmap
Case IO.DriveType.Ram
pDrive(i).Image = My.Resources.rPanel.RAM.ToBitmap
Case IO.DriveType.Removable
pDrive(i).Image = My.Resources.rPanel.usb.ToBitmap
Case IO.DriveType.Unknown
pDrive(i).Image = My.Resources.rPanel.usb.ToBitmap
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Расстановка значков
pDrive(i).Left = 75 + i * (pDrive(i).Width + 5)
pDrive(i).Top = 5
pDrive(i).BorderStyle = BorderStyle.None
pDrive(i).BackColor = Color.Transparent
pDrive(i).ContextMenuStrip = mnuDisk
pDrive(i).Tag = sDrive
LineShape4.X1 = pDrive(i).Left + pDrive(i).Height + 5
LineShape4.X2 = LineShape4.X1
Button2.Left = LineShape4.X1 + 5
Button3.Left = Button2.Left + Button2.Width + 5
Next i
Me.Controls.AddRange(pDrive)
End If
End Sub
netdemon писал(а):Это будет намного быстрее и практичнее чем выявлять вынутый диск по буквам.
не нужно каждый раз создавать или удалять значки! Это сильно понижает производительность!
netdemon писал(а):А вот как теперь вынуть иконки из 'exe' файлов и отрисовать в пунктах меню.?
Public Sub GetSettings()
Dim Progs() As String
Dim Games() As String
Dim Pcount, GCount As Integer
Dim menuImageSize As System.Drawing.Size
menuImageSize.Height = 13 : menuImageSize.Width = 13
Pcount = My.Settings.Progs.Count
GCount = My.Settings.Games.Count
ReDim Progs(Pcount - 1)
ReDim Games(GCount - 1)
For i = 0 To Pcount - 1
Progs(i) = My.Settings.Progs.Item(i).ToString
frmBar.CMS1.Items.Add(GetMenuItemText(Progs(i)), Drawing.Icon.ExtractAssociatedIcon(Progs(i)).ToBitmap)
Next i
For i = 0 To GCount - 1
Games(i) = My.Settings.Games.Item(i).ToString
frmBar.CMS2.Items.Add(GetMenuItemText(Games(i)), Drawing.Icon.ExtractAssociatedIcon(Games(i)).ToBitmap)
Next i
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5