|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
[VB6] Scrivere servizi per windows XP
Ciao a tutti, avrei bisogno di una dritta....
ho creato un progetto come eseguibile standard in VB6, dopo averlo compilato e testato, l'ho inserito nella lista dei servizi di windows e fin qui tutto bene. Subito dopo l'avvio del programma (come servizio) windows lo termina automaticamente con questo messaggio: < IL SERVIZIO SU COMPUTER LOCALE SI E' AVVIATO, QUINDI SI E' INTERROTTO. ALCUNI SERVIZI SI INTERROMPONO AUTOMATICAMENTE SE NON VI SONO OPERAZIONI DA ESEGUIRE, AD ESEMPIO I SERVIZO AVVISI E REGISTRO DI PRESTAZIONI> Ovviamente non è così anke perchè nel programmino c'è un timer e ogni secondo vengono eseguiti dei controlli....sto diventando matto! ![]() Il programma mi serve tra i servizi, perchè vorrei ke fosse attivo da subito, ovvero ancora prima ke venga eseguita la scelta utente......AIUTO! Ultima modifica di 82ginopino : 21-02-2008 alle 13:33. |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
http://msdn2.microsoft.com/en-us/lib...41(VS.85).aspx
in Visual Basic 6 non si possono scrivere servizi - non che mi risulti, e se anche si potesse perché farsi del male? |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
VITA FACILE1!!
grazie x la risposta, anche io cerco di semplificarmi la vita....cmq ho bisogno ke il programma venga avviato prima ancora ke si acceda a windows scegliendo un'utente....ke io sappia gli unici programmi ke sono in esecuzione in quel momento sono i servizi.....
Conosci un'alternativa...?? Ultima modifica di 82ginopino : 21-02-2008 alle 13:30. |
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
uhm, no... non sono i servizi l'unico software in esecuzione in quel momento: ci sono anche i drivers e c'è anche GINA, ma nulla di realizzabile tramite Visual Basic 6.
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
Allora.....scrivere un driver lo escluderei, per prima cosa nn ne sarei capace e seconda cosa non me ne faccio un bel niente....
Detto questo, gina è carina?? ![]() Ps quando dici ke VB6 nn consente di scrivere servizi o driver, è perchè conosci un linguaggio specifico in grado di farlo?? Ke io sappia, con le giuste librerie, in VB6 come in pascal (x esempio) si può scrivere anche un sistema operativo....insomma qualsiasi cosa! Nn ti risulta? Ultima modifica di 82ginopino : 21-02-2008 alle 14:55. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
a me dava lo stesso problema quando facevo partire il servizio come localservice ma non avevo i diritti necessari per effettuare delle operazioni.
..tutto questo ovviamente se il tuo servizio nella OnStart fa qualcosa di "utile"... perchè se non fa niente lì mi sa che è giusto che termini ![]() ah... il mio non è scritto in VB 6 ![]()
__________________
![]() Ultima modifica di ^TiGeRShArK^ : 21-02-2008 alle 15:17. |
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
i privilegi x me non sono un problema, ke linguaggio hai usato te? E poi a me nn costa niente fargli aprire un file, e kiuderlo a fine sessione il problema è sarà sufficente? Ogni secondo il programma controlla una variabile e esegue un if....questo nn basta??
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Eventualmente se ti decidessi a cambiare linguaggio potresti passare al VB.NET che è meglio del VB6. Che fa il tuo programma? ..e soprattutto come l'hai fatto partire? io ho scritto questo codice di inizializzazione per farlo partire come servizio... Codice:
namespace FileGuardian { static class Program { /// <summary> /// The main entry point for the application. /// </summary> static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new GuardianService() }; ServiceBase.Run(ServicesToRun); } } } Codice:
public partial class GuardianService : ServiceBase { DirectoryListener dirListener; public GuardianService() { InitializeComponent(); } protected override void OnStart(string[] args) { Logger.log("Starting service..."); dirListener = new DirectoryListener(); Logger.log("Service correctly created"); }
__________________
![]() |
|
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
mmmm vado a naso....
da quello ke ho letto tu hai scritto un servizio a tutti gli effetti con tanto di inizializzazione, io ho scritto un normalissimo programma, l'ho compilato e ho cercato di far partire l'eseguibile come servizio....che in effetti (lo ammetto) è un approccio un po maccheronico al problema..... Cmq grazie, prendo spunto....vedo se anke in VB6 c'è bisogno di un'inizializzazione del servizio tipo la tua, male ke vada passo a VB.NET.... ti faccio sapere.... |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
XYNTService Che ti consente di eseguire come servizio un qualunque programma esterno. Da prendere con la massima cautela. |
|
![]() |
![]() |
![]() |
#11 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
Ok grazie mille, farò un po di prove...
Anke se il servizio riesco ad avviarlo, il problema è che viene terminato automaticamente... |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quel codice si può decisamente migliorare, però è già pronto per quello che deve fare. Se uno vuole migliorarlo o scriversi da 0 un servizio è liberissimo di farlo.
Poi manca la gestione delle varie opzioni che i servizi hanno e che sono gestibili da interfaccia grafica, con un pò di MSDN si può aggiungere pure quelle. |
![]() |
![]() |
![]() |
#14 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 27
|
Grazie tommino, darò uno sguardo...intanto x risolvere penso ke passerò a VB.NET, tanto prima o poi devo decidermi ad utilizzarlo, con VB6 nn vado da nessuna parte...
Vi farò sapere ok?! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:28.