Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0097: Programm vor dem Taskmanager verstecken

 von 

Beschreibung 

Wer vermeiden will, daß sein Programm durch den Taskmanager beendet werden kann, oder es aus welchen Gründen auch immer vor ihm zu verstecken, muß seine Anwendung als Dienst anmelden. Wie das geht und wie es wieder rückgängig zu machen ist steht hier. (Funktioniert nicht bei NT)

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

GetCurrentProcessId, RegisterServiceProcess

Download:

Download des Beispielprojektes [1,89 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Schaltfläche "Command1"

Option Explicit

Private Declare Function GetCurrentProcessId Lib _
        "kernel32" () As Long

Private Declare Function RegisterServiceProcess Lib _
        "kernel32" (ByVal dwProcessID As Long, ByVal _
        dwType As Long) As Long

Private Sub Command1_Click()
  Dim pId&
    pId = GetCurrentProcessId
    Call RegisterServiceProcess(pId, 0&)
End Sub

Private Sub Command2_Click()
  Dim pId&
    pId = GetCurrentProcessId
    Call RegisterServiceProcess(pId, 1&)
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 37 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von mario am 08.11.2010 um 09:24

habe eine frage under task manager under anwendung ist ein F

keine ahnung was er bedeutet.weis nur das mein reschner sehr langsam geworten ist und sehr späht reagiert.nehme ich das f raus ist er schneller.aber der kommt immer wider .siht aus wie eine exe.

danke mfg mario

Kommentar von Andreas am 16.01.2008 um 18:31

Geht das eigentlich auch mit VBS (VisualBasic Script)?
ich bin nämlich grad dabei, was in VBS zu coden und würde das gerne verstecken

Kommentar von mts am 09.12.2007 um 04:57

Ich habe dummerweise mir den Code nicht abgespeichert, den ich zum echten Verstecken eines Prozesses fand, als ich was anderes suchte. Jetzt bräuchte ich ihn und suche. Wollte also mitteilen, daß ich schon ausgefeilte Lösung gesehen habe. Und außerdem: Kann man nicht diejenigen hier weglöschen, die nichts zum Thema beitragen? Es ist doch egal, wofür man es braucht, und wahr ist vor allem: es gibt einen Haufen edler Gründe, sein Programm komplett zu verstecken, also sollte dieses Virus- und Hack - und Spionagegefasel aufhören. Ich will mein Programm verstecken, um es vor Spionage zu schützen. Wer weiß was?

mts

Kommentar von Alfonso am 21.10.2007 um 02:00

I don't hope you to understand more than I do to your forum, but I also hope this to be helping, in Windows XP
the function RegisterServiceProccess of Kernel32 no longer exists, but its equivalent is RegisterServicesProcess from User32, Even that way, I have some trouble using it... Just Make the try: RegisterServicesProccess (note the extra s) in User32.

Kommentar von h4ck3r am 01.02.2007 um 00:10

doch es ist möglich auch unter xp den process zu verstecken =)
es ist etwas komplizierter. Ihr müsst einfach nur die procc32next api per iat hooken und wenn sie euren process anzeigt einfach ihn nicht zurück geben ;))

ps: NtQuerySystemInformation geht noch besser =)

Public Function hooked_Process32Next(ByVal hSnapshot As Long, ByVal lppe As LPPROCESSENTRY32) As Long
Dim ReturnValue As Long
ReturnValue = Process32Next(hSnapshot, lppe)
If ReturnValue = "deineanwendung" Then
ReturnValue = Process32Next(hSnapshot, lppe)
End If
hooked_Process32Next = ReturnValue
End Function

Kommentar von 3dn4d0g am 21.01.2007 um 17:59

öhhh nur mal so als anmerkung der code hat ein fehler ... oder funzt net auf xp ...

Call RegisterServiceProcess(pId, 1&)

da liegt der fehler... irgendwas mit kernel oder so ^^

wollt euch nur mal drauf hinweisen ;)

Kommentar von s_qw23 am 08.04.2006 um 18:31

Wenn ihr das Program wirklich verstecken wollt versucht es mal so:

private sub form_load()

app.taskvisible = false

end sub

Kommentar von thanhdng533 am 11.10.2005 um 08:27

hi,I'm Thanh. I from Vietnam.
I want to hide my app in the task manager of Windows XP.

please help me with VB6 code :

If I Used the code: app.TaskVisible=False then
My app only hide in the applications tab
=> but in the proccess not hidden it.
Else
Used Your code:

Private Declare Function GetCurrentProcessId Lib _
"kernel32" () As Long

Private Declare Function RegisterServiceProcess Lib _
"kernel32" (ByVal dwProcessID As Long, ByVal _
dwType As Long) As Long

Private Sub Command1_Click()
Dim pId&
pId = GetCurrentProcessId
Call RegisterServiceProcess(pId, 0&)
End Sub

Private Sub Command2_Click()
Dim pId&
pId = GetCurrentProcessId
Call RegisterServiceProcess(pId, 1&)
End Sub

=> Error: Run time error '453' (can't find DLL entry point RegisterServiceProcess in kernel32).

My teacher can't help me. You can ?
End if

Thank you very much.

Kommentar von Florian Rittmeier am 10.10.2005 um 09:02

Hello thanhdng533,

Windows 9x-based an Windows NT-based operating systems differ in the point of security. The only way to achieve the same functionality is to write a service.

http://www.activevb.de/tipps/vb6tipps/tipp0467.html shows how to do this. But the code is based on a knowledge base article and Microsoft explicitly says, that to write a service with Visual Basic 5/6 is not supported!

If you've further questions, please use our forum at http://foren.activevb.de/cgi-bin/foren/list.pl?forum=4 und use 'Neues Thema anfangen' to create a new topic.

Greetings
Florian
-------------
Team ActiveVB

Kommentar von thanhdng533 am 10.10.2005 um 02:36


Private Declare Function RegisterServiceProcess Lib _
"kernel32" (ByVal dwProcessID As Long, ByVal _
dwType As Long) As Long

not run with Winxp. Please help me (VB6 code)!

Thank you very much !

Kommentar von hackbart am 04.10.2005 um 09:11

lol ey, unglaublich, "es ist nit möglich unter nt... nt ist sicher... blablabla"

unfug! es gibt genug programme, die auch unter xp/ 2003 funktionieren, sie verstecken laufende programme die nicht, oder eben auch im service laufen komplett! dann sieht man sie auch nit mehr mit net start :o

dessweiteren kann man alle files auch noch unsichtbar schalten, damit sie windows nich sieht :o

da sagt doch nochmal einer, das es nit funktioniert! mit so aussagen wie "nt ist sicher" würd ich aufpassen, vorallem wenn man keine ahnung von sicherheit hat...

cya

Kommentar von s_qw23 am 18.08.2005 um 14:47

Warum wollt ihr eigentlich alle eure anwendungen vor dem Taskmanager verstecken? Ihr müss eure Programme als dienst laufen lassen. Jedoch müsst ihr dafür Administratorrechte besitzen. Also wenn du Michael einen Virus damit Programmieren willst schalte den Taskmanager einfach ab.

Es gibt ein beispiel dazu. Du muss ihn einfach öffnen und so kann ihn der Benutzer nicht mehr öffnen. Ein sehr ausgeklügeltes beispiel aber es tut seinen dienst auch unter NT Basierenden Systemen

mfg

s_qw23

Kommentar von @on am 06.04.2005 um 16:46

leute klar kann mann programme vor dem taskmanager unter xp verstecken man braucht dazu nur ein regestry eintrag zu erstellen, mit dem passenden basic programm ist dies auch möglich

Kommentar von Ilia am 06.02.2005 um 17:37

man kann zwar ein prog in ein service laufen lassen,
aber dafür braucht man zwei files die man mitschleppenm muss
wer trotzdem sovas machen will : srvany.exe oder sowas und ein anderes file.
nur win2000-xp

Kommentar von Lukas Künzel am 05.05.2004 um 20:19

Hi

Eine Alternative wäre ein 2tes Prog laufen zulassen das immer überprüft ob Prog A noch läuft..wenn nicht startet es dieses neu...das kann man natrülich koppeln. So überwachen die progs sich gegenseitig..

Nachteil: Es ist sichtbar

Kommentar von Lucas am 07.04.2004 um 10:22

Es gibt auch einige Sinnvolle Zwekce wofür man sowas braucht. Ich programmiere ein Tool für ein Internet Kiosk. Und der task soll nicht sichtbar und nicht Beendbar sein.

Es sind nicht immer böse Gedanken hinter so einer Funktion.

Kommentar von Florian Rittmeier am 29.12.2003 um 20:17

For our english speaking visitors:

It is not possible to hide an application in the task manager of a NT based Microsoft Windows operating system.

Greets Florian Rittmeier
------------------------
Admin at ActiveVB.de

Kommentar von Mac am 28.12.2003 um 15:20

Es gibt keine Möglichkeit unter NT basierenden Systemen (NT, 2000, XP) Programme vor dem Taskmanager verstecken und das ist auch gut so.

Kommentar von hendrixxx am 18.12.2003 um 22:51

Ich benötige unbedingt Hilfe für dieses Programm, falls wer weiß wie dieses Programm unter XP (VB6) läuft wäre es sehr nett wenn er mir helfen würde.

Danke im Vorhinein

mfg hendrixxx

Kommentar von fredarwin am 21.11.2003 um 17:46

hello!!,

What can I use instead of RegisterServiceProcess with WinXP
in VB6.

thank you for u help ;)

Kommentar von Rudolf Haas am 09.11.2003 um 19:03

Wie kann man in VB6 eine Liste der geladenen Porzesse erhalten?
Mein Problem ist, dass sich ein Prozess, der eigentlich immer aktiv sein müsste, irgendwie 'verschwindet'. Mittels eines Programms möchte ich alle paar Sekunden überprüfen, ob der Prozess noch da ist, um ihn ev. nachladen zu können.

Kommentar von Chariwan am 29.08.2003 um 16:19

Da könnte man doch gleich ein App.Taskvisible = False machen, oder?

Kommentar von Jonathan am 07.04.2003 um 19:49

Geht bei mir nicht
(Win 98, VB6)
Anwendung weiterhin im Taskmanager sichtbar

Kommentar von jaballah am 26.02.2003 um 18:19

Win2000 untauglich

Kommentar von Martin Schönholzer am 20.02.2003 um 11:19

Vielen Dank Thomas für den Tip mit App.Taskvisible!

Kommentar von Ronny am 13.02.2003 um 19:17

kann man den soruce auch ohne irgendein vb programm öffen und kann man den Source so ändern das ein fertiges Programm (exe File) auch vorm Taskmanger versteckt bleibt?

Kommentar von Firewalker2k am 05.01.2003 um 01:08

Ich will mal was klarstellen, sowas geht ab glaube NT ncihtmerh weil sie nichtmehr die Tasks(oder zumindest nicht nur) sonder die Prozesse anzeigen und davor kann man kein Programm verstecken!

MFG

PS: Falls die aussage doch nciht richtig sein sollte teilt es mir mit aber ihr könnt sicher sein das es unter 98se und vorrige BS geht, es gibt jedoch programme mit denen mana uch die prozesse sieht!

Kommentar von Fastlook am 11.08.2002 um 10:54

Wo muss man diese Sachen eintragen ??

Kommentar von RolfPach am 28.02.2002 um 21:22

Ja, viel einfacher: Nur eine Zeile, ein Ausdruck!!

Kommentar von Flavio am 28.02.2002 um 21:19

Dass mit app.taskvisible funktioniert auch bei win me und ist irgendwie viel einfacher...

Kommentar von MichaelG am 26.01.2002 um 21:38

nt ist ein sicheres system. grade weil es solche funktionen ignoriert!
nt zeitg alle aktiven processe an, und es ist nicht möglich sein programm davor zu verstecken.

Kommentar von PhilippVB am 17.01.2002 um 21:25

Wenn das nicht unter NT läuft, warum ist dann bei "NT 4" trotzdem ein Haken??

Kommentar von Jürgen am 03.01.2002 um 14:15

Gibts nicht auch eine
Möglich unter Windows NT,um ein Programm für den Taskmanager unsichtbar zu machen?
Eventuell mit Programmbeispiel?

Kommentar von Michael am 07.10.2001 um 12:47

Könnte man damit auch einen Virus schreiben?

Kommentar von Thomas Stachelhaus am 07.02.2001 um 16:08

Unter NT4/2000 kann man App.TaskVisible auf False setzen, dann wird die Anwendung nur noch unter "Prozesse" angezeigt.

Kommentar von David am 17.01.2001 um 17:20

Das würde mich auch interessieren?

Kommentar von Manfred am 07.01.2001 um 00:21

Warum funktioniert das Programm unter NT nicht?
Gibt es kein Beispiel für NT?