Sign in to follow this  
Followers 0
WSCPorts

Make a service 0_o

4 posts in this topic

#1 ·  Posted (edited)

MakeService.Au3 Fixed Alot in a day :whistle:

;Service Type Constants 
Const $KernalDriver = 1
Const $FileSystemDriver = 2
Const $Adapter = 4
Const $RecogizerDriver = 8
Const $OwnProcess = 16
Const $ShareProcess = 32
Const $InteractiveProcess = 255
;End Service Types

;Error Types
Const $Ignore = 0
Const $Normal = 1
Const $Severe = 2
Const $Critical = 3
;End Error Types

;Startup Mode Strings
Const $Boot = "Boot"
Const $System = "System"
Const $Automatic = "Automatic"
Const $Manuel = "Manuel"
Const $Disabled = "Disabled"
;End Startup Types

;DestopInteract Boolean If true, the service can 
;create or communicate with windows on the desktop. 

Func ServiceCreate($ServiceName, $DisplayName, $ServicePath, _
$ServiceType, $ErrorControl, $StartMode, $DesktopInteract)   
   Dim $Locator = ObjCreate("WbemScripting.SWbemLocator")
   Dim $Service = $Locator.ConnectServer()
   $Service.Security_.ImpersonationLevel = 3
   Dim $Process = $Service.Get("Win32_BaseService")
$Ret = $Process.Create($ServiceName, _
$DisplayName, _
$ServicePath, _
$ServiceType,_
$ErrorControl, _
$StartMode, _
$DesktopInteract, _
"NT AUTHORITY\LocalService", "")
$Ret.StartService()
If $Ret = @Error then 
exit
EndIF
EndFunc

Au3Service.au3

#include <MakeService.au3>
Dim $Au3 = ServiceCreate("Au3Service", "Au3Service",  "C:\*\Autoit3\autoit3.exe", $OwnProcess, $Normal, $Manuel, True )
Edited by WSCPorts

http://www.myclanhosting.com/defiasVisit Join and contribute to a soon to be leader in Custumized tools development in [C# .Net 1.1 ~ 2.0/C/C++/MFC/AutoIt3/Masm32]

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Several things wrong... Just didn't list em... And I don't see a service in the task manager :whistle: ?

Func _ServiceCreate($ServiceName, $ServicePath)
   Const $impersonation = 3
   Const $OWN_PROCESS = 16
   Const $NOT_INTERACTIVE = False
   Const $NORMAL_ERROR_CONTROL = 1
   Dim $Locator = ObjCreate ("WbemScripting.SWbemLocator")
   Dim $Service = $Locator.ConnectServer ()
   $Service.Security_.ImpersonationLevel = $impersonation
   Dim $Process = $Service.Get ("Win32_BaseService")
   $Ret = $Process.Create ($ServiceName, _
         "New Service", _
         $ServicePath, _
         $OWN_PROCESS, _
         $NORMAL_ERROR_CONTROL, _
         "Manual", _
         $NOT_INTERACTIVE, _
         "NT AUTHORITY\LocalService", "")
   If $Ret = @error Then
      Exit
   EndIf
EndFunc  ;==>_ServiceCreate

I also changed the name just for consistency even though I don't think it works.

Edited by layer

FootbaG

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

if that dont work this will :whistle:

#include <Array.au3>

;CreateFlags
Const $Debug_Process = 1
Const $Debug_Only_This_Process = 2
Const $Create_Suspended = 4
Const $Detached_Process = 8
Const $Create_New_Console = 16
Const $Create_New_Process_Group = 512
Const $Create_Unicode_Environment  = 1024
Const $Create_Default_Error_Mode = 67108864
Const $CREATE_BREAKAWAY_FROM_JOB = 16777216
;End CreateFlags

;Environment Variables
;List settings for the configuration of a computer. Environment variables 
;specify search paths for files, directories for temporary files, 
;application-specific options, and other similar information. The system maintains
;a block of environment settings for each user and one for the computer. The
;system environment block represents environment variables for all users of a
;specific computer. A user's environment block represents the environment
;variables that the system maintains for a specific user, and includes the set of
;system environment variables. By default, each process receives a copy of the
;environment block for its parent process. Typically, this is the environment block
;for the user who is logged on. A process can specify different environment blocks
;for its child processes.
;EndEnvVars Blurb taken from 
;http://msdn.microsoft.com/library/default.asp?url=/library/en-;us/wmisdk/wmi/create_method_in_class_win32_process.asp

;ErrorMode types
Const $Fail_Critical_Errors = 1
Const $No_Alignment_Fault_Except = 2
Const $No_GP_Fault_Error_Box = 4
Const $No_Open_File_Error_Box = 8
;end ErrorMode Types

;Console Windows IE cmd.exe NOT Gui Fillattributes
Const $Foreground_Blue = 1
Const $Foreground_Green = 2
Const $Foreground_Red = 4
Const $Foreground_Intensity = 8
Const $Background_Blue = 16
Const $Background_Green = 32
Const $Background_Red = 64
Const $BackGround_Intensity = 128
;EndFillAttributes

;PriorityClass Types
Const $Normal = 32
Const $Idle = 64
Const $High = 128
Const $Realtime = 256
Const $Above_Normal = 16384
Const Below_Normal = 32768
;End PriorityClass Types
;ShowWindow Types = Gui Constants The sw_all's

Const $Null = chr(0)
Const $impersonation = 3
;Get Locator Object
Dim $Locator = ObjCreate("WbemScripting.SWbemLocator")
;Get SwbemServices Object
Dim $Service = $Locator.ConnectServer()
;Set Impersonation level
$Service.Security_.ImpersonationLevel = $impersonation
;Get Process Startup Context Object  
Dim $objStartup = $Service.Get("Win32_ProcessStartup")
;Make a instance to Configure
Dim $objConfig = eval("$objStartup.SpawnInstance_()")

Func _ProcessStartUp($CreateFlags, $EnvVars, $ErrorMode, _
$FillAttribute,  $ShowWindow, $Title)
If Not IsArray($objConfigured[6]) then
Dim $objConfigured[6]
$objConfig.CreateFlags = $CreateFlags
$objConfigured[1] = $CreateFlags

$objConfig.EnvironmentVariables = $EnvVars
$objConfigured[2] = $EnvVars

$objConfig.ErrorMode = $ErrorMode
$objConfigured[3] = $ErrorMode

$objCondif.FillAttribute = $FillAttribute
$objConfigured[4] = $FillAttribute

$objConfig.ShowWindow = $ShowWindow
$objConfigured[5] = $ShowWindow

$objConfig.Title = $Title
$objConfigured[6] = $Title

Return $objConfig
EndIf
EndFunc

Func _ProcessCreate($strPathProc)
;Get a Propcess Object
 Dim $Process = $Service.Get("Win32_Process")
if Not @Error then
;Create our process with the Create Method of the Process Object 
 $Process.Create($strPathProc, $Null, $objConfig, $intProcessID)
else 
Exit

EndFunc
Edited by WSCPorts

http://www.myclanhosting.com/defiasVisit Join and contribute to a soon to be leader in Custumized tools development in [C# .Net 1.1 ~ 2.0/C/C++/MFC/AutoIt3/Masm32]

Share this post


Link to post
Share on other sites

any Comments? Critisism anything Help me if u see more errors or know of a better way for me to code as im used to Perl and james warringtons style of vbs.. im trying to master Conversion of said Languages its hard.... :whistle:


http://www.myclanhosting.com/defiasVisit Join and contribute to a soon to be leader in Custumized tools development in [C# .Net 1.1 ~ 2.0/C/C++/MFC/AutoIt3/Masm32]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0