СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Возможно ли средствами VB отключить кнопку «Пуск»?

Ответ

Можно, вот код:
Функция FindWindow:
lpClassName — имя класса нужного нам окна
lpWindowName — заголовок окна, можно передать строку содержащею 0 символов
Функция возвращяет hWnd указанного окна.

Функция FindWindowEx:
hWndParent — hWnd полученный функцией FindWindow
hWndChildAfter — hWnd дочернего окна
lpClassName — аналогичен параметру функция FindWindow
lpWindowName — аналогичен параметру функция FindWindow

Далее все очень просто, получив hWnd нужного нам окна мы можем делать с этим
окном почти все, что угодно. А теперь небольшой пример, работы с кнопкой Start (Пуск).

'Создайте стандартный проект, установите на форму 4 кнопки.

Option Explicit
Dim hwndChild As Long
Const SW_HIDE = 0
Const SW_SHOW = 5
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 hWndParent As Long, ByVal hWndChildAfter As Long, _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" Alias "EnableWindow" _
(ByVal hWnd As Long, ByVal fEnable As Boolean) As Long
Private Declare Function ShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Sub Form_Load()
Me.Caption = "Start button"
Command1.Caption = "Hide"
Command2.Caption = "Show"
Command3.Caption = "Enabled"
Command4.Caption = "Disabled"
hwndChild = FindWindowEx(FindWindow("Shell_traywnd", ""), 0, "Button", "")
End Sub
Private Sub Command1_Click()
ShowWindow hwndChild, SW_HIDE
' скрыто окно
End Sub
Private Sub Command2_Click()
ShowWindow hwndChild, SW_SHOW
' видно окно
End Sub
Private Sub Command3_Click()
EnableWindow hwndChild, True
' можно использовать
End Sub
Private Sub Command4_Click()
EnableWindow hwndChild, False
' нельзя использовать
End Sub

' Аналогичным способом можно использовать любое окно. В этом примере
используется небольшая часть того, что можно вытворять с окнами. Здесь главное быть осторожным,
так как Windows может не простить допущенной вами ошибки.

@LEXis



Copyright © 2000-2004 Сообщество Чайников
Контактная информация