Newsgroup: it.comp.lang.delphi
Titolo: Applicazione VB che uccidono quelle delphi ??

Ciao a tutti,
su una macchina dove sta girando una applicazione VB6 ho creato una
applicazione in Delphi 5.
Ogni tanto mi ritrovo che l'applicazione in D5 viene chiusa senza dare
nessuna segnalazione sui log che creo (intercetto lo shutdown etc
etc).
Mi era gia' successo una cosa simile su un altro pc, stesse
condizioni. Non appena ho "eliminato" l'app vb il mio caro programma
in D5 non ha + dato segni di cedimento ...
Qualche idea ?
Grazie.
F.
===========================================
To reply, remove LEVAME
My digital photos: 
http://www.alecab.it/cai


Sembrerebbe una TerminateProcess...
Prova a mettere in debug l'app D5 e a vedere come esce.
Ciaotutti,
*

 etc).
Le applicazioni VB e Delphi non dovrebbero darsi fastidio.
Per caso accedono alle stesse informazioni ?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Per caso accedono alle stesse informazioni ?
none ... ed e' questo che mi fa incazzare .. :(
Ciao.


none ... ed e' questo che mi fa incazzare .. :(
Prova a far scrivere all'applicazione qualcosa su file
sull'OnClose del form primario.  Devi riuscire a capire se
viene killata (come suppongo) o se si chiuda in modo
regolare.
-- 
Andrea Laforgia - walkietalkie(at)
libero.it
"Meglio cieco che negro" (Stevie Wonder)

regolare.
L'avevo gia' fatto. Intercetto sia lo shutdown/close etc etc.
e lo scrivo nel log, ma in questo caso non scrive nulla (proprio un
kill).
C'e' modo di ignorare un kill, giusto per dare un messaggio a video ?
Thx.


 C'e' modo di ignorare un kill, giusto per dare un messaggio a video ?
Ahime'... no :(



Diciamo ni... Sotto NT potresti far lanciare l'applicazione da un servizio,
che la farebbe partire con account System: se e' il programma VB che cerca
di terminarti l'applicazione, non potra' farlo.
Unico neo, non potrai vederla a schermo!
E' solo a scopo di debug, quindi.
Ciaotutti,
*

per nome dell'immagine del processo e vuol fare il furbetto ! ;)
Grazie. Provero' ..


 Diciamo ni... Sotto NT potresti far lanciare l'applicazione da un servizio,
A parte il fatto che bisogna essere sotto NT,
come si farebbe a intercettare il kill per 
mostrare un messaggio ?



Non lo intercetti, fai solo partire l'applicazione: se non muore vuol dire
che non e' un errore dell'applicazione ma un tentativo di omicidio
dall'esterno.
Ciaotutti,
*

 dall'esterno.
Torniamo al punto di prima.
Per testare se un'applicazione muore in modo anomalo, 
basta controllare il passaggio dall'OnClose.



Ma se gli sparano (leggasi TerminateProcess) dal'onclose non ci passa :)
Ciaotutti,
*

 wrote in message
news:a2ohr2$12o1lv$1...@ID-68324.news.dfncis.de...

Ci risiamo.
E' esattamente quello che sto dicendo.
Bisogna controllare il passaggio dall'OnClose, come
ho gia' detto nei messaggi precedenti.  Se dall'OnClose
non si passa, vuol dire che l'applicazione viene
killata.



Ahn... Avevo perso questo passaggio :)
Ma ancora non va bene: non e' detto che l'applicazione sia stata killata se
non passa dall'OnClose, potrebbe essere stata terminata dal sistema per un
errore (anche se e' strano che non venga segnalato).
Se vuoi capire se l'applicazione e' stata terninata l'unico modo e' tentare
di impedirne la terminazione (cioe' farla girare come system process) e
verificare se muore lo stesso: se muore e' un errore (oppure l'assassino e'
in grado di impersonare SYSTEM), se non muore e' probabile si tratti di
omicidio :)
Altrimenti devi andare a hookare la chiamata a kernel32 in modo da
intercettare una terminateprocess a tradimento.
Ciaotutti,
*

 errore (anche se e' strano che non venga segnalato).
Ho il dubbio che tu non legga i messaggi del thread.
Ho detto che potrebbe trattarsi anche di un abnormal
termination dell'applicazione Delphi.  Per vedere se
l'applicazione viene effettivamente killata, bisogna
costruirne una con lo stesso nome che mostra solo una
finestra.  Se anche questa viene killata, vuol dire
che il riconoscimento avviene per nome, se non viene
killata, vuol dire che c'e' qualcosa nell'app Delphi
di partenza.


> Sembrerebbe una TerminateProcess...
Semmai un Terminator Process  :)

> Ho il dubbio che tu non legga i messaggi del thread.
Idem :P
La mia risposta era alla domanda: "c'e' modo di ignorare un kill?", ed era
relativa ad una TerminateProcess proveniente da un altro programma.
Non c'e' modo di intercettarlo (se non hookando la kernel32.dll, che poi e'
il modo piu' facile per non riuscire nemmeno a far ripartire il computer :P)
ma c'e' modo di ignorarlo, se giri come un processo su cui il "terminante"
non ha diritti.
Ciaotutti,
*

 relativa ad una TerminateProcess proveniente da un altro programma.
La domanda era: "c'e' modo di ignorare un kill, in modo da 
dare un messaggio a video ?".  Ignorare, per poter dare un
messaggio a video, significa intercettare.
