PDA

View Full Version : [Vb] Inet - IcDisconnecting


-K2-
13-07-2004, 10:51
Salve a tutti. Ho scoperto che in Vb esiste l'Inet che mi fa inviare i dati via FTP.

Inet1.UserName = myUser
Inet1.Password = myPwd
Inet1.RemoteHost = MyHost
Inet1.Execute Inet1.URL

Do Until Inet1.StillExecuting = False
DoEvents
Loop
Inet1.Execute "", "PUT", "C:\merlino\merlinopubblicita_import.mdb", "Pri/Merlinopubblicita_import.mdb"

Do Until Inet1.StillExecuting = False
DoEvents
Loop
Inet1.Execute "", "CLOSE"
Do Until Inet1.StillExecuting = False
DoEvents
Loop

Non capisco come mai quando in debug eseguo la riga di "PUT" la costanta StateConstants si imposta a 9 (icDisconnecting) e non accade più nulla.

Ho già cercato nel web in lungo e in largo ma non riesco a far funzionare sta benedetta "PUT".

matpez
13-07-2004, 11:30
Sinceramente io preferisco usare le API per uploadare roba su FTP, adesso scappo a casa a pranzo, subito dopo ti costo il codice per fare questa operazione da VB.

PS: nell'altro 3d te l'avevo detto che si poteva fare da VB, o questo è completamente un altra cosa? :p :oink:

-K2-
13-07-2004, 13:04
E' sempre la stessa cosa. Non riesco ad inviare sto cazzo di DataBase, sia con sto file.bat sia con Inet. Proviamo con API.

matpez
13-07-2004, 13:53
Questo è un mio progetto, io estrapolo il codice, se qlc nn ti è chiaro dimmelo pure.


Private Sub SendFileFTP()

On Error Resume Next

Dim sFileRemote As String
Dim sDirRemote As String
Dim sFileLocal As String
Dim hOpen As Long
Dim hConnection As Long
Dim nFreeFile As Integer


'trasferisco il file nel FTP
DoEvents

'apro la connessione all'FTP
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hConnection = InternetConnect(hOpen, LeggiPreferences("DATI FTP", "Host"), INTERNET_INVALID_PORT_NUMBER, LeggiPreferences("DATI FTP", "UserName"), mcCrypt.DecryptAPI(LeggiPreferences("DATI FTP", "Password"), "Id9VhDCX21", True), INTERNET_SERVICE_FTP, IIf(LeggiPreferences("DATI FTP", "AccessoPassivo") = "0", 0, INTERNET_FLAG_PASSIVE), 0)

If hOpen <> 0 And hConnection <> 0 Then
frmMain.sbrMain.Panels(1) = "Invio file FTP in corso..."

sFileRemote = LeggiPreferences("DATI FTP", "File")
sFileLocal = App.Path & "\" & sFileRemote

'creo il file da mettere sul FTP
nFreeFile = FreeFile
Open sFileLocal For Output As #nFreeFile
Print #nFreeFile, CreaFTPFile(LeggiPreferences("DATI FTP", "FileCode"))
Close #nFreeFile

sDirRemote = "/" & LeggiPreferences("DATI FTP", "Cartella")

Call rcd(LeggiPreferences("DATI FTP", "Host"), sDirRemote, hConnection)

'mando il file all'FTP
DoEvents
bSendFileFTP = FtpPutFile(hConnection, sFileLocal, sFileRemote, FTP_TRANSFER_TYPE_BINARY, 0)

'elimino il file
Call Kill(sFileLocal)

'chiudo la connessione all'FTP
Call InternetCloseHandle(hConnection)
End If

'chiudo la connessione ad internet
If hOpen <> 0 Then Call InternetCloseHandle(hOpen)

End Sub

Public Sub rcd(ByVal sHost As String, sDir As String, ByVal lConnection As Long)

Dim sPathFromRoot As String


If sDir = "" Then
Exit Sub
Else
If InStr(1, sDir, sHost) Then
sPathFromRoot = Mid$(sDir, Len(sHost) + 1, Len(sDir) - Len(sHost))
Else
sPathFromRoot = sDir
End If
If sPathFromRoot = "" Then
sPathFromRoot = "/"
End If
Call FtpSetCurrentDirectory(lConnection, sPathFromRoot)
End If

End Sub

-K2-
13-07-2004, 14:57
Si grazie. Chiaro è chiaro.
Ma dove si imparano ad usare le API????
Esistono dei tutorial del link...?

matpez
13-07-2004, 19:02
Il maggiore "tutorial" che io conosco (e penso anche gli altri) è API-Guide e lo trovi qui: http://www.mentalis.org/agnet/apiguide.shtml

C'è tutto quello che interessa, esempi, descrizioni ed è un ottimo strumento per sviluppare programmi non più di base, ma a livello avanzato! :)