РАССЫЛКА САЙТА WWW.IGORYKSOFT.NAROD.RU

ВЫПУСК 3

    Здравствуйте! 

Сегодня в выпуске:

  • Обновления на сайте;

  • Как узнать сколько твипов в высоту занимает TaskBar (панель задач)?

  • Как расшифровать значения, возвращаемые функцией GetAttr?

  • Вопрос-Ответ.

Обновления на сайте:

  •  В разделе "Мои программы" выложен ActiveX препятствующий взлому пароля в текстовом поле.

Как узнать сколько твипов в высоту занимает TaskBar (панель задач)?

     Для этого используется следующий код. В раздел "General" формы нужно вставить:

Const SM_CYSCREEN = 1
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
     А в код формы -
Private Sub Form_Click()
a = (GetSystemMetrics(SM_CYSCREEN) - GetSystemMetrics(17)) * Screen.TwipsPerPixelY
MsgBox a
End Sub

     Где a - переменная, которая возвратит значение высоты панели задач.

Как расшифровать значения, возвращаемые функцией GetAttr?

     Для того, чтобы узнать какой атрибут у файла используется функция GetAttr. Если функция возвращает значения 0 (Обычный), 1 (Только чтение) и т.п., проблем не возникает, но если файл имеет одновременно несколько атрибутов возникают некоторые сложности. Чтобы этих сложностей не было я сделал следующую функцию.

 

Function DeCode(Att As Integer)

Dim C,i,j as Integer
ReDim D(0 To 7)
A = Array(0, 1, 2, 4, 8, 16, 32, 64, 128)
B = Array("Обычный", "Только чтение", _
"Скрытый", "Системный", "Метка тома", "Каталог или папка", _ 

"Файл был изменен после последнего резервирования", _
"Определен пользователем", "")
For i = LBound(A) To UBound(A)
If A(i) = Att Then
DeCode = B(i)
Exit Function
ElseIf A(i) > Att Then
For j = i - 1 To LBound(A) Step -1
C = A(j) + C
D(j) = j + 1
If C = Att Then
For resval = 0 To 6
If D(resval) > 0 Then
result = result & ", " & B(resval)
End If
Next
DeCode = Right(result, Len(result) - 2)
Exit Function
ElseIf C > Att Then
D(j) = 0
C = C - A(j)
End If
Next
End If
Next
End Function
    Самое последнее значение массива A равно сумме всех предыдущих значений+1; сделано это для того, чтобы обрабатывать значения >64. Но такого возвращаемого значения быть не может, поэтому в массиве B, на том же месте стоит "".

    Вызвав ее в любом месте программы она возвратит текстовое значение всех атрибутов файла. Например, при вызове DeCode(37), будет возвращено: "Только чтение, Системный, Файл был изменен после последнего резервирования".

Вопрос-Ответ

Почта для вопросов: igoryksoft@yandex.ru

    На этом все.

Пишите на почту: igoryksoft@yandex.ru. Заходите на сайт: www.igoryksoft.narod.ru

При копировании представленных здесь материалов, обязательно делать ссылку на www.igoryksoft.narod.ru!

 

Назад Содержание Вперед

Hosted by uCoz