Подсчет свободной памяти в данный момент. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Подсчет свободной памяти в данный момент.



 

Private Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type

 

Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)

 

Const fmt As String = "###,###,###,###"
Const skb As String = " Kb"
Const nkb As Long = 1024

 

Private Sub Form_Load()

Dim MS As MEMORYSTATUS


MS.dwLength = Len(MS)

GlobalMemoryStatus MS

lbMemStat(0) = Format$(MS.dwMemoryLoad, fmt) & " % Use"

lbMemStat(1) = Format$(MS.dwTotalPhys / nkb, fmt) & skb

lbMemStat(2) = Format$(MS.dwAvailPhys / nkb, fmt) & skb

lbMemStat(3) = Format$(MS.dwTotalPageFile / nkb, fmt) & skb

lbMemStat(4) = Format$(MS.dwAvailPageFile / nkb, fmt) & skb

lbMemStat(5) = Format$(MS.dwTotalVirtual / nkb, fmt) & skb

lbMemStat(6) = Format$(MS.dwAvailVirtual / nkb, fmt) & skb

End Sub

В начало

Получение информации об окнах

1. Поиск окна по его заголовку

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

 

'Процедура для получения манипулятора окна по его заголовку
Public Function GetHwnd(Caption As String) As Long
Dim hwnd As Long
hwnd = FindWindow(vbNullString, Caption) 'Caption - заголовок окна
GetHwnd = hwnd
End Function


2. Поиск окна по его классу

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


'Процедура для получения манипулятора окна по его классу
Public Function GetHwnd(Class As String) As Long
Dim hwnd As Long
hwnd = FindWindow(Class, vbNullString)
GetHwnd = hwnd
End Function

 

3. Поиск дочернего окна

'Функция для получения окна первого уровня

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

 

'Функция для получения дочернего окна

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

 

'Разместите на форме кнопку (Command1)

Private Sub Command1_Click()
Dim hwnd As Long
hwnd = FindWindow("Класс родителя", "Заголовок родителя") 'Поиск родителя
hwnd = FindWindowEx(hwnd, 0, "Класс дочернего окна", "Заголовок дочернего окна") 'Поиск дочернего окна
End Sub

В начало

 

Окна и манипуляторы

1. Скрываем кнопку Пуск:

 

1. Создайте новый проект.
2. На создавшейся вместе с проектом форме разместите две кнопки.
3. Назовите первую кнопку cmdHide, и измените, свойство Caption на "Скрыть кнопку Пуск", вторую кнопку назовите cmdShow и измените Caption на "Показать кнопку Пуск".

 

 

4. Добавьте следующий код:

 

'Функция для поиска окна первого уровня
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


'Функция для поиска дочернего окна
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

 

'Функция для скрытия/показа окна

Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

 

Dim hnd As Long

Private Sub Form_Load()
'Кнопка Пуск является дочерним окном панели задач
'Кнопка Пуск относится к классу "BUTTON", Панель задач относится к классу "Shell_TrayWnd"
'Ищем, манипулятор панели задач
hnd = FindWindow("Shell_TrayWnd", vbNullString)
'Ищем манипулятор кнопки пуск
hnd = FindWindowEx(hnd, 0, "BUTTON", vbNullString)
End Sub

 

Private Sub cmdHide_Click()
'Скрываем окно с заданным манипулятором
ShowWindow hnd, 0
End Sub

Private Sub cmdShow_Click()
'Показываем окно с заданным манипулятором
ShowWindow hnd, 1
End Sub

 

2. Меняем заголовок заданного окна

1. Создайте новый проект.
2. На создавшейся вместе с проектом форме разместите две метки, два текстовых поля и одну кнопку
3. Назовите первое текстовое поле txt1, второе txt2, кнопку cmdRename.

 

 

4. Добавьте следующий код:


'Функция для поиска окна первого уровня
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Функция для изменения заголовка окна
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

 

Private Sub cmdRename_Click()
Dim hwn As Long
'Ищем окно по его заголовку
hwn = FindWindow(vbNullString, txt1)
'Меняем заголовок окна
SetWindowText hwn, txt2
End Sub

В начало

Отключение системного меню

'процедура определения системного меню

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

'процедура удаления меню
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long

Sub Disable_SysMenu(handle As Long)
Dim menu_handle As Long 'переменная с хэндлом меню
menu_handle = GetSystemMenu(handle, 0)

DestroyMenu (menu_handle)
End Sub

 

handle =vForm.hwnd, где vForm - форма, над которой нужно поиздеваться

В начало



Поделиться:


Последнее изменение этой страницы: 2019-12-25; просмотров: 106; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.171.235 (0.006 с.)