WinExec con Visual C++.Net

domenica 13 giugno 2004 - 10.23

mclane Profilo | Newbie

Ciao a tutti,
ho il seguente problema :

uso la funzione WinExec in un programma per avviare una volta il RAR.exe e l'altra UnRAR.exe,per la compressione e decompressione di un file. Per capirci : se si clicca su un bottone, eseguo :

WinExec("RAR.exe .... parametri ...", SH_SHOW);

se si clicca su un altro bottone, eseguo :

WinExec("UnRAR.exe .... parametri ...", SH_SHOW);

Mentre il primo viene eseguito correttamente, il secondo non funziona per niente. Come mai ??

Grazie a tutti in anticipo

Brainkiller Profilo | Guru

Come potrai vedere dalla documentazione MSDN la funziona WinExec è mantenuta solo e soltanto per la compatibilità con il passato e le applicazioni 16 bit, pensa quindi a quanto è vecchia :) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/winexec.asp
MSDN consiglia infatti di sostituirla con la più evoluta CreateProcess.
Eventualmente nel tuo caso potresti anche usare la ShellExecute o ShellExecuteEx.

Inoltre prima di fare ciò ti consiglio di verificare che tutti i parametri che passi a rar.exe e unrar.exe siano corretti, magari la causa sta lì.

Un'altra soluzione che ti prospetto e di scaricare WinRAR con il pacchetto SDK che contiene Header Files e Lib Files, quindi tutto le API, per decomprimere nativamente dal tuo programma i file .RAR

ciao
david

mclane Profilo | Newbie

Grazie per la pronta risposta, ma il problema era solo di natura "temporale", nel senso che il mio programma copia il file da comprimere nella directory in cui si trova il RAR. Se l'esecuzione viene effettuata passo-passo io do il tempo al fyle-sistem di effettuare la copia, ma quando l'esecuzione avviene non in modalità debug, il RAR non si trova il file da comprimere perchè l'esecuzione dell'istruzione avviene prima che la copia sia stata completata.
Cmq, mi potresti dire dove posso trovare gli header e i lib files per WinRAR, la soluzione sarebbe migliore.
Grazie.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5