Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET] Comandi DOS non riconosciuti come tali (wget et similia)

    Salve a tutti, avrei bisogno di supporto...

    Da un paio di giorni avevo intenzione di creare un programma che, inserito un link in una textbox, scarica del materiale da Internet. È completamente inutile, ne sono consapevole, ma è solo per fare un po' di pratica. Avevo intenzione di usare il wget.exe per farlo, quindi usare una riga di comando. Il problema non è il programma in sé, ma proprio questo passaggio:

    codice:
    Shell "Command /c wget indirizzo"
    Il file wget.exe è presente nella cartella System32 e System32\sys (si tratta di Windows 7), quindi il comando "wget" dovrebbe essere automaticamente eseguito... ma non lo riconosce comunque. Nemmeno provando così:

    codice:
    Shell "Command /c start percorso\wget.exe indirizzo"
    E come se non bastasse, il tutto non funziona nemmeno richiamando un file .bat contente:

    codice:
    start percorso\wget.exe indirizzo
    oppure

    codice:
    cd percorso_dove_è_presente_il_file_wget.exe
    wget indirizzo
    Il problema principale è quindi l'utilizzo di "comandi esterni" e "file esterni" (non saprei come meglio definire la situazione, mi riferisco a comandi come wget), non come scaricare file da Internet tramite Visual Basic, sono sicuro che siano presenti decine di guide trattanti l'argomento. Grazie per le eventuali risposte!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    L'uso di Shell nel codice mi pare strano se si programma in Visual Basic .NET.

    Per queste esigenze, si usa Process.Start.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Esatto, inoltre:
    - sui sistemi di famiglia NT (ovvero da Windows 2000 in poi) richiamare command.com non ha molto senso, piuttosto si richiama cmd.exe, ma comunque si fa prima a richiamare direttamente il Process.Start;
    - per scaricare file in ogni caso si usa la classe WebClient.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    40
    Originariamente inviato da MItaly
    Esatto, inoltre:
    - sui sistemi di famiglia NT (ovvero da Windows 2000 in poi) richiamare command.com non ha molto senso, piuttosto si richiama cmd.exe, ma comunque si fa prima a richiamare direttamente il Process.Start;
    - per scaricare file in ogni caso si usa la classe WebClient.
    Oppure puoi anche usare:
    - My.Computer.Network.DownloadFile(indirizzo, destinazione, ...)

    I tre puntini sono delle opzioni di chiamata aggiuntive.

  5. #5
    Grazie a tutti. In materia sono un po' ignorante: programmando tramite l'ausilio di Visual Studio 2010 Express, significa programmare in .NET o VB 2010? Magari è proprio questo è il punto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    40
    .NET si riferisce all'uso delle framework .NET di microsoft (ora incorporate di base nei sistemi operativi, a partire da vista) mentre per VB 2010, semplicemente il linguaggio Visual Basic e 2010 sta per il programma che usi.
    Solitamente, quando crei un programma e lo scrivi con Visual Studio 2010, di base, usi .NET framework 4.0, quindi si può intuire che se scrivi VB 2010, usi il framework 4.0

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.