Newsgroup: it.comp.lang.visual-basic
Titolo: [?] ARDUA: sapere se un exe è un exe valido

Ciao a tutti,
Ho fatto un programmino che scarica ogni notte un file .exe da un ftp.
Capita saltuariamente che si inchiodi a metà; in questi casi il file
ottenuto è un .exe troncato.
Se lo eseguo windows mi avvisa immediatamente che non è un'applicazione
win32 valida.
Domanda: riesco da codice a capire che non è un exe valido (in modo da
riscaricarlo)?
Grazie a tutti in anticipo.

 ha scritto nel messaggio
news:94rdl7$50c$1...@fe1.cs.interbusiness.it...

Prendi un EXE che è troncato e apri un nuovo progetto VB.
Nel codice di un Command_Click metti
shell "c:\pippo\pluto.exe"
e vedi il numero di errore che sicuramente Visual Basic ti ritorna.
Poi metti nel codice un bel On Error e gestisci il numero di errore che ti
viene scatenato quando il file è taroccato.
CiaoZ
SebaMix

Il programma lo scarica ogni notte ma NON può eseguirlo in locale; quindi
non posso lanciarlo con shell, ahimé.
Pensavo a un controllo dell'header o qualcosa di simile.
Grazie comunque.

 ha scritto

confronta le dimensioni di quello che scaricavi con le dim di quello
salvato. pregando che i due computer le considerino allo stesso modo.
mi sembra che jimi avesse dato molte dritte al riguardo
http://www.deja.com/home_ps.shtml
prova a cercare autore jimi subj ftp o simili
ciao, a.

Anche a questo avevo pensato, ma lo scarico usando un batch dos (e comando
ftp ) e non vi è possibilità (o almeno io non ho trovato come fare) di avere
di ritorno la dimensione del file.
Anche facendo un dir non riesco all'interno di ftp a reindirizzare l'output
su un file locale, ahimé.
Riassumo (la parte del batch la avevo effettivamente omessa): lancio un
batch dos che scarica il file aggiornato; al termine il batch lancia un .exe
fatto in vb che fa qualche controllo sul file e lo copia in rete.
Il .exe deve poter capire (se è possibile farlo) se l'applicazione è un file
win32 valido (altrimenti anziché copiarla in rete la riscarica).
Grazie.

 su un file locale, ahimé.
la cosa migliore sarebbe che ti scrivessi in vb il client ftp. ma forse con
la gestione delle finestre 'dos' di vb2themax riesci a catturare l'output e
a scandirtelo. cerca standard output in 
www.vb2themax.com
 -- mi sembra ci
fossero 2-3 pp che parlavano di stdin e stdout.
ciao, a.


Visto, ma mi sa che faccio prima a farmi il client ftp.
Comunque sono sicuro che, leggendo l'header, c'è un modo per sapere se è una
applicazione valida.
boh
Grazie comunque.

 Grazie comunque.
be', non e' detto. anche se nell'header ci fosse scritto  "tutto ok", il
problema e' che l'header te lo trovi, ma non ti trovi il tailer :) -- cioe'
il troncamento e' una condizione esterna all'exe, non interna.
pero', forse forse: se l'header contiene la dim in byte, puoi controllare
quella. prova a guardare se 
www.wotsit.org
 ti dice qualcosa sul formato di
un exe win.
ciao, a.

 wrote in message
news:94rno6$f12gd$1...@ID-51318.news.dfncis.de...


su un file locale, ahimé.
Non e' la risposta al tuo problema, ma perche' non usi un client ftp
fatto bene tipo leechftp --che e' anche free-- e che ha l'autoresume,
lo scheduling e tutto il resto?
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD