Hauptsächlich
für Programme, die im Hintergrund laufen sollen,
ist es sinnvoll, das Beenden über die Taskliste (Ctrl+Alt+Entf)
zu verhindern !
Es ist möglich, dass
Ihr Programm erst gar nicht in
der Liste erscheint !
|
ERFORDERLICHE
OBJEKTE:
2 Commandbuttons (Command1, Command2)
FORM-CODE
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
Sub Sichtbar_in_TaskListe(JaNein)
Dim p As Long
Dim ret As Long
If JaNein Then x = 0 Else x = 1
p = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, x)
End Sub
Private Sub Command1_Click()
'in der Taskliste sichbar
Call Sichtbar_in_TaskListe(True)
End Sub
Private Sub Command2_Click()
'nicht in der Taskliste sichbar
Call Sichtbar_in_TaskListe(False)
End Sub
Private Sub Form_Load()
Command1.Caption = "Sichtbar"
Command2.Caption = "Unsichtbar"
End Sub
Um
einen ähnlichen Effekt unter Windows NT zu erzielen,
können Sie auch die Anweisung
App.TaskVisible=False
verwenden.
Dies bewirkt, dass ein laufendes Programm nicht mehr unter
"Anwendungen" sondern unter den "laufenden
Prozessen" im
Windows NT Task-Manager angezeigt wird.
Nachteil daran:
Unter Form_QueryUnload
kann UnloadMode
nicht mehr abgefangen werden,
wenn das Programm "abgewürgt" wird.
|