Newsgroup: it.comp.programmare.win32
Titolo: problema con il menu contestuale "Invia a"

Ciao a tutti,
sto scrivendo un programma per la console che lavora su di un insieme di 
file. I percorsi completi dei file devono essergli passati come parametri 
(es. file_renamer c:\file1 c:\file2). L'idea č di non usare il programma 
dalla console ma da explorer usando "Invia a" oppure il drag and drop. Con 
quest'ultimo nessun problema mentre con "Invia a" se vengono selezionati piů 
di cinque file non esegue proprio il programma. Sto usando Vista. Vi torna 
questo fatto? Come rimuovere questa limitazione apparentemente assurda?
Grazie mille!
Benjamin

 Benjamin
Il "send to" non fa altro che passare i nomi dei file sulla command 
line.
Quindi non vedo proprio su quale base non avvierebbe l'applicazione.
Fai magari un banale test creando una console app che stampa la command 
line e metti il suo shortcut nel sendto.
-- 
Raffaele Rialdi
Microsoft .NET MVP 
http://mvp.support.microsoft.com
 -
http://italy.mvps.org
 UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org
 Weblog: 
http://blogs.ugidotnet.org/raffaele

 line e metti il suo shortcut nel sendto.
Fatto ed il problema si verifica anche con questa applicazione 
semplicissima. Avviandola dal prompt nessun problema ma, messo il 
collegamento nel sendto, funziona bene solo se seleziono cinque o meno file. 
Se ne seleziono di più non viene proprio eseguita. Sbaglierò qualcosa ma non 
sono proprio un novellino e non c'è molto da sbagliare...
Il programma è scritto in c e l'ho compilato con gcc 3.4.2.
Non è che c'è un limite sul numero di parametri che possono venire passati 
con sendto per impedire che un utente sprovveduto, per sbaglio, avvii in 
questo modo un numero spropositato di istanze di un'applicazione? E' l'unica 
cosa che mi veine in mente...
Ciao e grazie,
Benjamin

 collegamento nel sendto, CUT
Se al posto del collegamento, nel sendto, copio l'eseguibile, funziona 
sempre correttamente. Quindi direi che è un problema del collegamento...
Ciao,
Benjamin 

 correttamente. Quindi direi che è un problema del collegamento...
Ho capito allora cosa ti succede. È la lunghezza della command line che 
ti limita il numero di item.
Se provi a fare sendto dei file che hai in C:\ dovresti riuscire a 
passargliene di più.
Leggi questo articolo per capire se può aiutarti nel superare i limiti 
di default
http://support.microsoft.com/kb/830473


 
http://support.microsoft.com/kb/830473
Non credo però che questo articolo si riferisca al mio problema. La 
lunghezza del comando, anche nei casi dove sendto non funziona, rimane ben 
al di sotto dei limiti di cui parla nell'articolo (8191 caratteri per XP e 
superiori). Inoltre scrivendo il comando "a mano" nel prompt viene 
accettato. Ho il sospetto che ci sia un limite simile ma molto più 
stringente che riguarda i collegamenti...
Ciao,
Benjamin


Non credo sia relativa al collegamento (puoi anche provare a mettere 
direttemente l'exe dentro sendto).
Cerca di capire il numero esatto del limite e soprattutto se dipende 
dalla dimensione dell'environment (set da cmd prompt):
http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx


 
http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx
Ho scoperto una cosa... Ho messo nel sendto sia un collegamento sia 
l'eseguibile. Usando l'eseguibile riesco a passargli un gran numero di file 
ma continuando ad aggiungerne ad un certo punto il programma non si esegue 
più viene fuori un alert box con scritto "Area dati passata ad n chiamata al 
sistema troppo piccola". Questo messaggio di errore sembra proprio relativo 
al limite che mi hai segnalato. Invece con il collegamento basta un numero 
piccolo di file (anche sei), che produce comando decisamente breve, non più 
di 700 caratteri, ed il programma non si esegue e non viene fuori alcun 
messaggio di errore. Non accade apparentemente nulla.
Purtroppo il mio utente avrebbe bisogno di usare il programma su di un 
numero arbitrario di file quindi questo sistema non va comunque bene. In 
ogni caso sarei curioso di capire il perché di questo strano 
comportamento...
Ciao e grazie!
Benjamin
p.s. il collagamneto l'ho creato nel modo più ovvio... menu contestuale - 
crea collegamento... taglia e incolla...