PRINCIPALE > LISTA DELLE AREE DI DISCUSSIONE > VISUAL BASIC: DOMANDE GENERALI > MESSAGGIO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.

Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.


Prezzo: € 0.0.

Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Messaggio



Api: creare un servizio
Carlo Spigoli 13/09/2004
Difficoltà: Medio

Ho scritto un pezzo di programma che dovrebbe installare un servizio NT, ma non funziona. L'API CreateService mi riporta l'errore ERROR_INVALID_PARAMETER. Perchè?
Faccio presente che altre API, sempre per la gestione dei servizi, mi funzionano correttamente.



L'esempio che segue, per evitare qualsiasi problema legato ad un servizio scritto da me, tenta l'installazione di un servizio usando un eseguibile che già esiste in Windows.
Per evitare risposte "già provate", ho provato tutte le combinazioni di "\" nel nome del file, Le costanti risultano valorizzate in questo modo:

SERVICE_ALL_ACCESS = 0xf01ff (983551)
SERVICE_WIN32_OWN_PROCESS = 0x10 (16)
SERVICE_DEMAND_START = 0x3 (3)
SERVICE_ERROR_NORMAL = 0x1 (1)


Grazie
______________________________________________________

Option Explicit

'API Constants
Public Const SERVICES_ACTIVE_DATABASE = "ServicesActive"
' Service Control
Public Const SERVICE_CONTROL_STOP = &H1
Public Const SERVICE_CONTROL_PAUSE = &H2
' Service State - For CurrentState
Public Const SERVICE_STOPPED = &H1
Public Const SERVICE_START_PENDING = &H2
Public Const SERVICE_STOP_PENDING = &H3
Public Const SERVICE_RUNNING = &H4
Public Const SERVICE_CONTINUE_PENDING = &H5
Public Const SERVICE_PAUSE_PENDING = &H6
Public Const SERVICE_PAUSED = &H7
'Service Control Manager Object specific access types
Public Const STANDARD_RIGHTS_REQUIRED = &HF0000
Public Const SC_MANAGER_CONNECT = &H1
Public Const SC_MANAGER_CREATE_SERVICE = &H2
Public Const SC_MANAGER_ENUMERATE_SERVICE = &H4
Public Const SC_MANAGER_LOCK = &H8
Public Const SC_MANAGER_QUERY_LOCK_STATUS = &H10
Public Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20
Public Const SC_MANAGER_ALL_ACCESS = _
(STANDARD_RIGHTS_REQUIRED _
Or SC_MANAGER_CONNECT _
Or SC_MANAGER_CREATE_SERVICE _
Or SC_MANAGER_ENUMERATE_SERVICE _
Or SC_MANAGER_LOCK _
Or SC_MANAGER_QUERY_LOCK_STATUS _
Or SC_MANAGER_MODIFY_BOOT_CONFIG)
'Service Object specific access types
Public Const SERVICE_QUERY_CONFIG = &H1
Public Const SERVICE_CHANGE_CONFIG = &H2
Public Const SERVICE_QUERY_STATUS = &H4
Public Const SERVICE_ENUMERATE_DEPENDENTS = &H8
Public Const SERVICE_START = &H10
Public Const SERVICE_STOP = &H20
Public Const SERVICE_PAUSE_CONTINUE = &H40
Public Const SERVICE_INTERROGATE = &H80
Public Const SERVICE_USER_DEFINED_CONTROL = &H100
Public Const SERVICE_ALL_ACCESS = _
(STANDARD_RIGHTS_REQUIRED _
Or SERVICE_QUERY_CONFIG _
Or SERVICE_CHANGE_CONFIG _
Or SERVICE_QUERY_STATUS _
Or SERVICE_ENUMERATE_DEPENDENTS _
Or SERVICE_START _
Or SERVICE_STOP _
Or SERVICE_PAUSE_CONTINUE _
Or SERVICE_INTERROGATE _
Or SERVICE_USER_DEFINED_CONTROL)

Type SERVICE_STATUS
dwServiceType As Long
dwCurrentState As Long
dwControlsAccepted As Long
dwWin32ExitCode As Long
dwServiceSpecificExitCode As Long
dwCheckPoint As Long
dwWaitHint As Long
End Type

Public Const ERROR_ACCESS_DENIED = &O5
Public Const ERROR_CIRCULAR_DEPENDENCY = 1059&
Public Const ERROR_DATABASE_DOES_NOT_EXIST = 1065&
Public Const ERROR_DUPLICATE_SERVICE_NAME = 1078&
Public Const ERROR_INVALID_NAME = 123&
Public Const ERROR_INVALID_PARAMETER = 87&
Public Const ERROR_INVALID_SERVICE_ACCOUNT = 1057&
Public Const ERROR_SERVICE_EXISTS = 1073&

Public Const READ_CONTROL = &H20000
Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)

Public Const SC_VSCROLL = &HF070&
Public Const SC_TASKLIST = &HF130&
Public Const SC_SIZE = &HF000&
Public Const SC_SCREENSAVE = &HF140&
Public Const SC_RESTORE = &HF120&
Public Const SC_PREVWINDOW = &HF050&
Public Const SC_NEXTWINDOW = &HF040&
Public Const SC_MOVE = &HF010&
Public Const SC_MINIMIZE = &HF020&
Public Const SC_MAXIMIZE = &HF030&
Public Const SC_ZOOM = SC_MAXIMIZE

Public Const SERVICE_WIN32_OWN_PROCESS = &H10&
Public Const SERVICE_DEMAND_START = &H3
Public Const SERVICE_ERROR_IGNORE = &H0
Public Const SERVICE_ERROR_NORMAL = &H1
Public Const SERVICE_ERROR_SEVERE = &H2
Public Const SERVICE_ERROR_CRITICAL = &H3


Public Const SERVICE_INTERACTIVE_PROCESS = &H100

Dim hndl1, hndl2 As Long
Dim Nomeserv
Dim Nomeservlong
Dim Nomeexe
Dim Nullo
Dim Gruppo As Long

Nullo = vbNullString
Nomeserv = "Servizio1"
Nomeservlong = "nomediService1"
Nomeexe = "%SystemRoot%\\System32\\cisvc.exe"

hndl1 = OpenSCManager("127.0.0.1", vbNullString,
hndl2 = CreateService( _
hndl1, _
Nomeserv, _
Nomeservlong, _
SERVICE_ALL_ACCESS, _
SERVICE_WIN32_OWN_PROCESS, _
SERVICE_DEMAND_START, _
SERVICE_ERROR_NORMAL, _
Nomeexe, _
Nullo, _
kkk, _
Nullo, _
Nullo, _
Nullo)