|
Как убрать программу из списка Ctrl+Alt+Del |
|
|
'Вариант 1
Расположите на форме 2 элемента CommandButton. Первая
кнопка убирает программу из списка, вторая -
показывает.
Важное примечание: при выгрузке
программы обязательно используйте процедуру
UnMakeMeService(), чтобы освободить системные ресурсы.
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal
dwProcessID As Long, ByVal dwType As Long) As Long
Const RSP_SIMPLE_SERVICE = 1
Const RSP_UNREGISTER_SERVICE = 0
Public Sub MakeMeService()
'Чтобы убрать вашу программу из списка Ctrl+Alt+Delete,
используйте процедуру MakeMeService:
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
'Чтобы показать вашу программу в списке Ctrl+Alt+Delete,
используйте процедуру UnMakeMeService:
Public Sub UnMakeMeService()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub
Private Sub Command1_Click()
MakeMeService
End Sub
Private Sub Command2_Click()
UnMakeMeService
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnMakeMeService
End Sub
'Вариант 2
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID
As Long, ByVal ServiceFlags As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Sub Form_Load()
RegisterServiceProcess GetCurrentProcessId, 1 'Hide app
End Sub
Private Sub Form_Unload(Cancel As Integer)
RegisterServiceProcess GetCurrentProcessId, 0 'Remove service flag
End Sub
|
|
|
|
|
|
|