41 75 74 6F 58 66 65 72 5F 43 6F 6D 6D 61 6E 64 AutoXfer_Command
01 13 45 3A 5C 55 53 42 42 41 4B 5C 32 30 30 33 第一位是傳輸方式:00 發(fā)到主機01從主機接收 02同步 第二位是本地文件路徑長度 ,后面的是本地文件路徑
31 2E 64 62 66 14 44 3A 5C 71 74 64 61 74 61 31 注釋:第六個主機文件路徑長度, 后面的是主機文件路徑
5C 32 30 30 33 31 2E 64 62 66
有了文件的組成格式,生成這么一個文件就不在話下了。只要用二進制方式生成這個文件,就一切OK了。
Public Sub makeATFFile(ByVal localpath As String, ByVal remotepath As String, ByVal filename As String)
Dim tx() As Byte
Dim ii As Integer
Dim len1, len2 As Integer
len1 = Len(localpath)
len2 = Len(remotepath)
ReDim tx(0 To 48 + len1 + len2 + 2)
注釋:04 40 41 54 46 01 00 01 01 00 01 01 01 01 00 01 注釋:第八位:00表示增量,01自然
注釋:00 00 00 00 00 00 00 01 00 FF FF 00 00 11 00 43 C
注釋:41 75 74 6F 58 66 65 72 5F 43 6F 6D 6D 61 6E 64 AutoXfer_Command
注釋:01 13 45 3A 5C 55 53 42 42 41 4B 5C 32 30 30 33 第一位是傳輸方式:00 發(fā)到主機01從主 機接收 02同步 第二位是本地文件路徑長度
注釋:31 2E 64 62 66 14 44 3A 5C 71 74 64 61 74 61 31 注釋:第六個主機文件路徑長度
注釋:5C 32 30 30 33 31 2E 64 62 66
tx(0) = &H4
tx(1) = &H40
tx(2) = &H41
tx(3) = &H54
tx(4) = &H46
tx(5) = &H1
tx(6) = &H0
tx(7) = &H1
tx(8) = &H1
tx(9) = &H0
tx(10) = &H1
tx(11) = &H1
tx(12) = &H1
tx(13) = &H1
tx(14) = &H0
tx(15) = &H1
tx(16) = &H0
tx(17) = &H0
tx(18) = &H0
tx(19) = &H0
tx(20) = &H0
tx(21) = &H0
tx(22) = &H0
tx(23) = &H1
tx(24) = &H0
tx(25) = &HFF
tx(26) = &HFF
tx(27) = &H0
tx(28) = &H0
tx(29) = &H11
tx(30) = &H0
tx(31) = &H43
注釋:41 75 74 6F 58 66 65 72 5F 43 6F 6D 6D 61 6E 64 AutoXfer_Command
tx(32) = &H41
tx(33) = &H75
tx(34) = &H74
tx(35) = &H6F
tx(36) = &H58
tx(37) = &H66
tx(38) = &H65
tx(39) = &H72
tx(40) = &H5F
tx(41) = &H43
tx(42) = &H6F
tx(43) = &H6D
tx(44) = &H6D
tx(45) = &H61
tx(46) = &H6E
tx(47) = &H64
注釋:01 13 45 3A 5C 55 53 42 42 41 4B 5C 32 30 30 33 第一位是傳輸方式:00 發(fā)到主機01從主
tx(48) = &H1
tx(49) = len1
For ii = 1 To len1
tx(49 + ii) = Asc(Mid(localpath, ii, 1))
Next ii
tx(49 + len1 + 1) = len2
For ii = 1 To len2
tx(49 + ii + len1 + 1) = Asc(Mid(remotepath, ii, 1))
Next ii
注釋:二進制文件打開
On Error Resume Next
Open filename For Binary As #1
For ii = 0 To 48 + len1 + len2 + 2
Put #1, , tx(ii)
Next ii
Close 1
End Sub
輸入本地文件路徑,主機文件路徑,ATF文件名,就可生成這么一個文件,再將RemoteData.AutoXferFile設(shè)成新生成的ATF文件,你就可以想傳什么就傳什么文件了,不過,有一點要注意:這兩個文件路徑都是必須存在的,不然會出錯。
結(jié)論:
利用VB驅(qū)動pcAnyWhere是一件非常簡單的事件,但不是很好,首先它無法完成由程序控制,還有是在拔號與文件傳輸時會出現(xiàn)操作界面,無法將其置為一個后臺程序,而人工的干預(yù)也過于容易,不過,在解決我當前的問題方面,它是一個非常好的選擇。