|
Данный пример покажет, как можно спрятать вашу
программу из панели задач, а затем показать.
Обратите внимание на функцию SetWindowPos - во
время показа формы вы можете установить место
появления формы, а также новые размеры формы.
Разместите на форме 3 элемента CommandButton и элемент
Timer. При нажатии на Command1 программа прячется как из
панели задач, так и из видимых программ. Событие
Timer1_Timer через 5 секунд покажет вашу програаму. При
нажатии на Command2 программа удаляется из панели
задач, но остается видимой, нажатие на Command3
покажет вашу программу в панели задач. Одна
странность: при нажатии второй раз на Command2
программа будет показана на панели задач. Const WS_EX_APPWINDOW = &H40000
Const GWL_STYLE = (-16)
Const GWL_EXSTYLE = (-20)
Const SW_HIDE = 0
Const SW_NORMAL = 1
Private Declare Function GetWindowLong Lib "user32" Alias
"GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias
"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As
Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal
nCmdShow As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As
Long, ByVal wFlags As Long) As Long
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Dim ret&
Private Sub Command1_Click() 'Этот код спрячет вашу программу
из панели задач, также спрячет саму форму
ret = SetWindowPos(Form1.hwnd, 0, Form1.Left, Form1.Top, Form1.Width, Form1.Height,
SWP_HIDEWINDOW)
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Interval = 5000
End Sub
Private Sub Timer1_Timer() 'Этот код покажет вашу форму через
5 секунд
ret = SetWindowPos(Form1.hwnd, 0, 0, 0, 500, 500, SWP_SHOWWINDOW)
End Sub
Private Sub Command2_Click() 'событие спрячет вашу прогу из
панели задач. Программа остается видимой
ShowWindow Form1.hwnd, SW_HIDE
ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Xor WS_EX_APPWINDOW
ShowWindow Form1.hwnd, SW_NORMAL
Timer1.Enabled = False
End Sub
Private Sub Command3_Click() 'событие покажет программу в
панели задач
ShowWindow Form1.hwnd, SW_HIDE
ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Or WS_EX_APPWINDOW
ShowWindow Form1.hwnd, SW_NORMAL
Timer1.Enabled = False
End Sub
|
|