Library tutorials & articles
API Programming Series #4
Analysis
Let us try to understand what we've been doing here. First we declared the necessary API calls. (For more information re: how to declare and use API functions, see Article #2- Using API in VB. For more information regarding API Programming see Article #1 What is Windows API?)
Here we need three API calls.
-
GetCurrentProcessId– This call, which doesn't accept any parameters, returns the ProcessID of the current process. The ProcessID is a unique Long value that Windows assigns to a process. -
GetCurrentProcess– This call returns a handle to the current process and is used by the GetCurrentProcessId function in determining the ProcessID. -
RegisterServiceProcess– This call accepts the ProcessID of a process and a type parameter. It then registers/unregisters the process (whose ID is given) as a service depending on the value of the type parameter.
The type parameter can be either RSP_SIMPLE_SERVICE (= 1) in which
case the process is registered as a simple service (it no longer appears in
the task list) or RSP_UNREGISTER_SERVICE (= 0), in which case the
process is unregistered as a service (appears in the task list).
Both these constants are declared in the General | Declarations section.
Now, whenever we want to register a service as a process, we retrieve its
ProcessID, pass it to the RegisterServiceProcess along with the dwType argument
set to RSP_SIMPLE_SERVICE. And when we want to unregister it, do
the same thing but this time set the dwType parameter to RSP_UNREGISTER_SERVICE.
For convenience, we can put all the necessary code in two separate procedures and call these procedures as necessary. That's all for now. As always, mail me if you have any comments or questions
Good-bye, Good luck and happy coding!
Related articles
Related discussion
-
Run-time error '91'
by converter2009 (1 replies)
-
VB6 Runtime error 381 subsript out of range Error
by Uncle (2 replies)
-
passing and reading parameters from using Shell
by jigartoliya (0 replies)
-
Convert C++ code to VB6
by mawcot (4 replies)
-
listbox scrollbar
by Dennijr (10 replies)
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...
i got teh same problem!!!
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?
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
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
eh?
vc
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
This thread is for discussions of API Programming Series #4.