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

    [VB.NET - CF per dispos. mobili] Funzione FTPcommand della wininet.dll non funziona

    Sto facendo un applicazione per uno scanphone con windows mobile che deve collegarsi tramite GPRS e inviare/ricevere file tramite FTP.
    Per i trasferimenti FTP uso i metodi a disposizione della wininet.dll
    (http://msdn.microsoft.com/en-us/libr...sktop/aa385483(v=vs.85).aspx)
    e funzionano FTPget, FTPput ecc..
    Non riesco ad utilizzare la funzione FTPcommand, che mi sarebbe molto utile per fare un LS dei file nel server FTP. In realtà questo metodo non mi funziona con nessun tipo di comando che voglio inviare: la funzione mi restituisce sempre False.
    Dove potrebbe essere l'errore?
    Allego la dichiarazione e il richiamo del metodo:

    codice:
    Public Declare Function FtpCommand Lib "wininet.dll" Alias "FtpCommandA" _
        (ByVal hFtpSession As Long, ByVal fExpectedReponse As Boolean, _
        ByVal dwFlags As Long, ByVal lpszCommand As String, _
        ByVal dwContext As Long, ByVal phFtpCommand As Long) As Boolean
    
     Private Sub connessione_ftp_transfer()
       ...
    
    Dim RC As Boolean
    INet = InternetOpen("ftp", 1, vbNullString, vbNullString, 0)
    INetConn = InternetConnect(INet, server_ftp, porta_ftp, user_server_ftp, password_server_ftp, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)
    If INetConn <> 0 Then
       connessione_eseguita = True
       Try
             Dim hResponse
             Dim command As String = "PASV"
             Dim hOutConn&
             RC = FtpCommand(INetConn, True, FTP_TRANSFER_TYPE_ASCII, command, 0, hOutConn)
              If RC = True Then
                   MessageBox.Show(hOutConn.ToString)
              Else
                   MessageBox.Show("Niente PASV")
              End If
    
              command = "LS"
              Dim retv As Long
              RC = FtpCommand(INetConn, True, 2, command, 0, retv)
              If RC = True Then
                   MessageBox.Show(hOutConn.ToString)
              Else
                   MessageBox.Show("Niente LS")
              End If
    
              command = "LIST" & VbCrLf
              RC = FtpCommand(INetConn, True, FTP_TRANSFER_TYPE_ASCII, command, 0, retv)
              If RC = True Then
                   MessageBox.Show(hOutConn.ToString)
              Else
                   MessageBox.Show("Niente LIST")
              End If
    
              command = "QUIT" & vbCrLf
              RC = FtpCommand(INetConn, True, FTP_TRANSFER_TYPE_UNKNOWN, command, 0, hOutConn)
               If RC = True Then
                   MessageBox.Show(hOutConn.ToString)
               Else
                   MessageBox.Show("Niente QUIT")
               End If
       ...
     End Sub
    Come vedete ho fatto varie prove con diversi comandi e dando parametri diversi al metodo, ma restituisce sempre False

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma perché con VB.NET usare le API e non le classi già pronte per FTP?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Questa wininet è l'unica che ho trovato come soluzione all'uso di FTP sul compact framework.
    Quali classi già pronte useresti tu?
    Ah, dimenticavo, sto usando Microsoft Visual Studio .NET 2003

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    No, giusto ... 2003 ... CF 1.0 ... non ci sono le classi ...

    Probabilmente potresti provare la OpenNETCF FTP Library http://ftp.codeplex.com/releases/view/49740 anche se non l'ho provata ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Grazie, proverò a darci un'occhiata, ma speravo di risolvere il problema su queste funzioni invece di cercare altre soluzioni

  6. #6
    Sono passato a SharpDevelop con CF 3.5.
    Quali sarebbero queste classi per l'uso di FTP incluse nel framework che non le trovo su MSDN?

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    non ho a portata di mano il cf, ma hFtpSession non dovrebbe essere un IntPtr? così come phFtpCommand.
    vedo che tu usi un Long, che sia quello l'errore?!


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.