Newsgroup: it.comp.programmare.win32
Titolo: Esecuzione remota

Salve a tutti e Auguri di buon Anno!
Il mio problema è il seguente :
Determinare se un programma è in esecuzione su una macchina della mia LAN.
Il programma è una normale applicativo grafico windows.
La soluzione utilizzata dovrebbe girare sia sotto Win 9X che NT...
Qualcuno conosce dei meccanismi efficienti per risolvere il problema?
Grazie per l'attenzione. Saluti a tutti!
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 che NT...
Mancano alcune informazioni, che riguardano soprattutto il "livello di
controllo" che hai sui PC remoti. Se sei l'amministratore e/o puoi
installare cio` che vuoi, il problema si risolve piuttosto semplicemente
con un programmino che gira sui PC remoti, si accorge dell'esistenza
dell'eseguibile (ad esempio controllando periodicamente con FindWindow()
se e` aperta una finestra appartenente a una particolare classe) e
comunica con il "programma server" attraverso TCP/IP. Se vuoi impedire
che gli utenti possano chiudere il programmino di controllo, sotto a NT
devi eseguirlo come servizio [1], mentre sotto a Windows 9x non esistono
metodi infallibili [2].
Se invece non hai possibilita` di controllo sulle macchine remote, la
vedo molto piu` grigia.
[1] Puoi scrivere un servizio, cosa non difficile ma nemmeno immediata;
oppure puoi usare srvany (o svcany, non ricordo), un'utility del
Resource Kit che esegue normali applicazioni come servizi.
[2] Esiste un'API per Windows 9x - che non ricordo - che ti permette di
trasformare un normale processo in un "simil-servizio" (che non si vede
nella lista dei task e "sopravvive" da un logon all'altro). Essa non
fornisce pero` alcuna sicurezza, dato che basta un qualsiasi task
manager un po' piu` evoluto per scovarla e terminarla.
--
Lorenzo

 La soluzione utilizzata dovrebbe girare sia sotto Win 9X che NT...
NT: si usa il registro di configurazione della macchina remota. O meglio 
i dati prestazioni. O meglio la libreria Performance Data Helper. 
Spiegato tutto per benino nell'SDK
9x: praticamente scordatelo. Se vuoi farti del male, usa un mini-server 
socket semplicissimo, che controlli se il processo č in esecuzione (vedi 
funzioni della Toolhelp Library) e risponda su una porta "sě" o "no". Se 
proprio decidi di farti del male, posso anche aiutarti
-- 
Nato nel vizio, morto nel supplizio
Nato nel peccato, ad entrare sia invitato

 nella lista dei task e "sopravvive" da un logon all'altro).
RegistrerServiceProcess()
--
- Carlo -
c.b...@libero.it

 proprio decidi di farti del male, posso anche aiutarti
Perché farsi del male?
Una volta credevo anche io che usare Winsock facesse rimanere svegli alla
notte a digitare inutilmente sulla tastiera...
Poi studiando qualche esempio, sono riuscito facilmente a farlo sia in
VisualBasic (molto facile), che con il Borland C++ Builder (abbastanza
facile) che addirittura in Win32 (meno complicato di quel che si possa
pensare).
Alla fine sono solo qualche decina di righe di codie in più.
Attenzione però a qualche firewall installato che potrebbe bloccare le
porte.
Ciao.

 proprio decidi di farti del male, posso anche aiutarti
...non sarebbe una cattiva cosa farsi del male in questo modo... anche se non
capisco quali potrebbero essere le controindicazioni di tale soluzione...
...inoltre sarebbe applicabile sia sotto Win95 che Nt... hai percosa dei pezzi
di codice per farmi fare un idea??
Grazi per l'attenzione!
