|
Scritto da Mauro
|
|
giovedì 07 febbraio 2008 |
|
Andrea Beggi scrive: A volte è utile/necessario far funzionare come servizio di sistema programmi che non sono stati creati con questa caratteristica. I due casi più comuni sono: far partire un programma prima del login dell’utente, (e/o in assenza di esso), e programmi che richiedono privilegi amministrativi che non è opportuno concedere all’utente del PC. In questo ci vengono in aiuto SRVANY.EXE e INSTSRV.EXE, entrambi presenti nel resource kit di Windows, e scaricabili a questo indirizzo. Vanno copiati nella cartella C:\Windows\System32, o comunque nella System32 del vostro sistema. Supponiamo che il nostro programma si chiami Rocket.exe, come prima cosa registriamolo come servizio di sistema con questo comando: INSTSRV NomeServizio C:\Windows\System32\Srvany.exe, sostituendo a NomeServizio un nome adatto Adesso editiamo la chiave di registro HKLM\System\Current Control Set\Services\NomeServizio\Parameters, ed aggiungiamo una stringa di tipo REG_SZ chiamata “Application”, il cui valore deve essere il path completo alla nostra applicazione. Ad esempio C:\Programmi\AcmeSoft\Rocket.exe Fatto ciò facciamo partire il servizio, che a sua volta dovrebbe avviare il programma. Possiamo impostare le normali proprietà del servizio tramite la solita interfaccia di gestione. In alcuni casi potrebbe essere necessario abilitare l’interazione col desktop. Ma bisogna stare molto attenti a non sbagliare a settare la chiave di registro!!! Ho infatti fatto uno script per regedit che mi setta il percorso della applciazione da langiare: Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NOMESERVIZIO\Parameters] "Application"="c:\\Path\\to\\Exe\\file\\nomeFile.exe" Ma avendo creato successivamente un nuovo servizio, e non funzionando più niente, mi sono accorto di non aver corretto lo script per regedit aggiornando il nome del servizio come chiave!!!! Mannaggia!
|