Library tutorials & articles

API Programming Series #4

The concept

Here the key concept to be understood is this:

The task list, while showing the currently running "tasks" on a machine, does not display those registered as services. So to prevent a task from appearing in the task list, we just need to register it as a service. And to make the task appear in the task list again, unregister it. Simple!

Let's get on with the code.

As always, start up Visual Basic and create a new Standard EXE project. A form should have been added to the project by default. Copy the following code into the declarations section of the form:

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

Private Const RSP_SIMPLE_SERVICE = 1
Private Const RSP_UNREGISTER_SERVICE = 0

Comments

  1. 12 Aug 2008 at 09:16
    I have got a Problem in code. Unable to find an entry point named 'RegisterServiceProcess' in DLL 'kernel32.dll'.
  2. 04 Nov 2004 at 23:14

    i got teh same problem!!!

  3. 25 Mar 2004 at 14:12

    I get the error: 453: Can't find DLL entry point RegisterServiceProcess in kernel32.
    What does this mean?
    How do I fix it?


    You have written this:
    "As always, mail me if you have any comments or questions"
    How can we email you, when your email is hidden?

  4. 24 Jul 2003 at 07:55
    Yes, it is.
    The reason I didnt code it that way was to keep the example simpler, though I admit that this did make it a little longer and less elegant.
    Primarily, I wanted to focus on the API call I wanted to explain.
    However, now that I see it in black and white, I kinda like it.
    So may be I'll go ahead and modify my code.
    Thanks
  5. 10 Jun 2003 at 17:57

    Private Sub MakeUnmake(MakeOrNot As Boolean)


    Dim pid As Long
    Dim regserv As Long


    If MakeOrNot = True Then
     pid = GetCurrentProcessId()
     regserv = RegisterServiceProcess(pid, RSPSIMPLESERVICE)
    Else
     pid = GetCurrentProcessId()
     regserv = RegisterServiceProcess(pid, RSPUNREGISTERSERVICE)
    End If


    End Sub

  6. 17 Apr 2003 at 06:08

    eh?

  7. 16 Apr 2003 at 02:50

    vc

  8. 07 Apr 2003 at 15:59
    i think the four series articles were very good guide to help me have more knowledge about visual basic API programming i tried to find some but didnt find any but here.
    i really thank you for this arguement but next time use another examples than the allapi viewr?? )
    but anyway i read all the allapi viewer api functions and i know whats there right now and it s really good in addition of being confusing
  9. 01 Jan 1999 at 00:00

    This thread is for discussions of API Programming Series #4.

Leave a comment

Sign in or Join us (it's free).

Sreejath S. Warrier

Related discussion

Related podcasts

  • Christian Beauclair

    14 mai 2008 (�mission #0074) ::.Christian Beauclair: Stratégies de migration VB6 vers .NET Nous discutons avec Christian Beauclair des stratégies de migration VB6 vers .NET. Entre autres, nous discutons comment utiliser le "VB 6 Code Advisor" et le "Interop Forms Toolkit" pour ajouter la puiss...

Want to stay in touch with what's going on? Follow us on twitter!