Newsgroup: it.comp.lang.visual-basic
Titolo: Servizio NT in VB parte seconda

Ciao a tutti.
Allora grazie alle indicazioni di alcuni di voi in merito ad un mio post
precedente adesso ho un applicativo VB6 che funziona come servizio NT
(utilizzo NTSVC.OCX).
Attivandolo dal pannello di controllo riesco a far apparire anche
un'iconcina nella tray bar grazie ad uno dei numerosi esempi presenti nel
sito comune.
E fin qua tutto Ok !
MA COME C...O FA A FARE IN MODO CHE una volta dato il logoff dell'utente che
ha attivato il servizio al successivo logon quella CACCHIO di iconcina
riappaia sulla tray bar ??
Direi che per questa settimana sono cotto abbastanza !
Grazie in anticipo.
Roby

 
Da VBWire (credo):
The solution is to repeatedly call the Shell_NotifyIcon() API function
until it returns a boolean true value. One way I've found to do this 
is to add a timer control, which is initially enabled, set at a 5 
second interval. Put the Shell_NotifyIcon() call in its event
(Timer1_Timer). Once the API call returns True, disable the
timer. Voila! 
Spero sia cio' che ti serve ...
		maxx

Esistono una serie di api per scrivere sul regisrtro di sistema..... Basta
che aggiungi una chiave alla voce
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" che
contiene la path del tuo programma!
Spero di essere stato utile!

 contiene la path del tuo programma!
In questo modo pero' il programma non viene avviato come servizio, cioe' 
  prima del logon, ma dopo il logon ...
Credo che il problema di Roby riguardi invece un servizio ...
		maxx

 timer. Voila!
Ed una volta disabilitato il Timer, al login successivo chi la rimette su
l'icona?
Anch'io ho querto problema ma onestamente nonsono riuscito a risolverlo con
questo sistema.
Sbaglio qualcosa o serve un'idea più completa?
Grazie
Michele

 l'icona?
Basta non disabilitare il timer, oppure intercettare CTRL_LOGOFF_EVENT
(Effettivamente avevo trascurato il logoff ...)
Appena ho 2 minuti provo e se riesco posto il risultato...
grazie per la precisazione
	maxx

timer. Voila! 
Non è un granchè di soluzione, specialmente in un servizio. Se viene 
avviato non-interattivamente rischi di tentare d'aggiungere quella 
benedetta icona per delle ore o dei giorni, senza successo

 wrote in message
news:9rc123$snnaq$1...@ID-102415.news.dfncis.de...

Nei miei "servizi" utilizzo sempre un timer perché le mie icone sono animate
nel tray.
Nel timer (che faccio girare circa ogni mezzo secondo) metto qualcosa così :
Private Sub AniTray_Timer()
    Dim hwndTray As Long, hwndTB As Long
    hwndTray = FindWindowEx(0&, 0&, "Shell_TrayWnd", vbNullString)
    If hwndTray <> 0& Then
' codice per cambiare l'icona
    endif
End Sub
Finora mi é andata bene.........
Ciao
Sal

Chiedo perdono se magari non riesco a capire questo codice ma ne ho un
estrebo bisogno anch'io.
Se non è vero che
hwndTray <> 0&
non esegui il codice per modificare l'icona, perchè evidentemente l'icona
non c'è e non c'è nulla da modificare.
Siamo quindi nella condizione di nessun utente loggato.
Però come cacchio fai invece per metterla questa benedetta icona quando
qualcuno si logga? Da qualche parte, una volta gli dovrai pur mandare un
NIM_ADD?
Se il codice fosse solo questo l'icona presumo che non verrebbe mai
visualizzata, o mi sfugge qualcosa?
Ciao e grazie


 wrote in message
news:9rgls0$hkb$1...@fe2.cs.interbusiness.it...


Direi che per questa settimana sono cotto abbastanza !
Mi senbra (ma controlla comunque) che queste chiavi del registry
servano proprio per far partire i servizi... In effetti vengono
attivate PRIMA del logon...
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce 
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices 
...ovviamente IMHO ! =)
Wolf