Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than advapi32, prefix the name with the module name and a period.
CreateService (advapi32)
.
C# Signature:
[DllImport("advapi32.dll", SetLastError=true)]
public static extern IntPtr CreateService(IntPtr hSCManager,string serviceName,string displayName, int desiredAccess, int serviceType, int startType,
int errorControl, string pathName, string loadOrderGroup, int tagBy, string dependancies, string serviceStartName, string password );
VB Signature:
<DllImport("advapi32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function CreateService(ByVal hSCManager As IntPtr, ByVal serviceName As String, _
ByVal displayName As String, ByVal desiredAccess As Int32, ByVal serviceType As Int32, _
ByVal startType As Int32, ByVal errorcontrol As Int32, ByVal binaryPathName As String, _
ByVal loadOrderGroup As String, ByVal TagBY As Int32, ByVal dependencides As String, _
ByVal serviceStartName As String, ByVal password As String) As IntPtr
User-Defined Types:
None.
Notes:
The 4th parameter from the end, TagBY, should - accordig to the API documention, be a by-ref parameter. Unfortunatly, the call only works if the parameter is byva.
Tips & Tricks:
Please add some!
Sample Code:
Dim scHandle As IntPtr = OpenSCManager(Nothing, Nothing, SC_MANAGER_ALL_ACCESS)
Dim serviceName As String = "AAATestService"
Dim displayName As String = "AAATestDisplayName"
If OpenFileDialog1.ShowDialog() <> DialogResult.OK Then
MsgBox("aborting")
End If
Dim pathName As String = Chr(34) & OpenFileDialog1.FileName & Chr(34)
Dim serviceHandle As IntPtr = CreateService(scHandle, serviceName, displayName, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, _
SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, pathName, Nothing, 0, Nothing, Nothing, Nothing)
If serviceHandle.Equals(IntPtr.Zero) Then
MsgBox(Marshal.GetLastWin32Error())
End If
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).