Главная страницаОбратная связьКарта сайта

Спрятать программу из Панели Задач



'Данный пример покажет, как можно спрятать вашу программу из панели задач,
'а затем показать. Обратите внимание на функцию 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


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Спрятать программу из Панели Задач", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2017 Дискета.info