Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
EsR V3.0 - Client.frm

Client.frm

Caricato da: P4p3r0g4
Scarica il programma completo

  1. Option Explicit
  2. Dim k, d, f As Integer
  3. Dim Drive(0 To 100) As String
  4. Dim File(0 To 300) As String
  5. Dim Direc(0 To 150) As String
  6. Dim Datiricevuti As String
  7. Dim IPAdress As String
  8. Dim Remotepath As String
  9. Dim PathFileRecived As String
  10. Dim MouseButton As Integer
  11. Dim Opzioni As Boolean
  12. Dim Savepath As String
  13. Dim Updown As Boolean
  14. Dim Apridopodown As Boolean
  15. Dim Onlydown As Boolean
  16. Dim Downandopen As Boolean
  17. Dim X As Integer
  18. Dim Conteggio As Double
  19. Dim Wsstate As Integer '(0 normal,1 sincronizzazione,2 downloading,3 uploading)
  20. Dim Shell1
  21.  
  22. Private Type RECT
  23.         Left As Long
  24.         Top As Long
  25.         Right As Long
  26.         Bottom As Long
  27. End Type
  28.  
  29. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  30. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  31.  
  32. Private Const LB_GETITEMRECT = &H198
  33. Private Const LB_ERR = (-1)
  34.  
  35.  
  36.  
  37.  
  38. Private Sub Connect_Click()
  39. Timer1.Enabled = False
  40. IPAdress = Uppertext.Text
  41. SaveSetting "EsR", "Connessione", "IPAdress", IPAdress
  42. Timer1.Enabled = True
  43. connetti
  44. End Sub
  45.  
  46. Private Sub List2_dblClick()
  47. If Opzioni = False Then
  48. If wsk.State = sckConnected Then
  49. wsk.SendData ("download:" & List2.List(List2.ListIndex))
  50. End If
  51. Else
  52. If List2.ListIndex = 0 Then
  53. List2.Enabled = False
  54. Options.Enabled = False
  55. zscrit.Visible = True
  56. zscrit.Text = Savepath
  57. ElseIf List2.ListIndex = 1 Then
  58. Updown = Not Updown
  59. Opzioniliste
  60. ElseIf List2.ListIndex = 2 Then
  61. If Apridopodown = True Then
  62. Apridopodown = False
  63. SaveSetting "EsR", "General", "shellit", 0
  64. Opzioniliste
  65. Else
  66. Apridopodown = True
  67. SaveSetting "EsR", "General", "shellit", -1
  68. Opzioniliste
  69. End If
  70. End If
  71. End If
  72. End Sub
  73.  
  74.  
  75. Private Sub List2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  76. Dim lItem As Long
  77. If Button = vbRightButton Then
  78.     lItem = GetRClickedItem(List2, X, Y)
  79.         If lItem <> -1 Then
  80.             List2.ListIndex = lItem
  81.             PopupMenu mnMenu
  82.         End If
  83. End If
  84. End Sub
  85.  
  86. Private Sub MnDelete_Click()
  87. On Error Resume Next
  88. wsk.SendData "kill:" & List2.List(List2.ListIndex)
  89. DoEvents
  90. End Sub
  91.  
  92. Private Sub mnDownload_Click()
  93. If wsk.State = sckConnected Then
  94. wsk.SendData ("download:" & List2.List(List2.ListIndex))
  95. End If
  96. Onlydown = True
  97. End Sub
  98.  
  99. Private Sub mnOpen_Click()
  100. If wsk.State = sckConnected Then
  101. wsk.SendData ("download:" & List2.List(List2.ListIndex))
  102. End If
  103. Downandopen = True
  104. End Sub
  105.  
  106. Private Sub zscrit_KeyPress(KeyAscii As Integer)
  107. If KeyAscii = vbKeyReturn Then
  108. If Dir(zscrit.Text) = "" Or Not Right(zscrit.Text, 1) = "\" Then
  109. zscrit = List2.List(0)
  110. End If
  111. zscrit.Visible = False
  112. Savepath = zscrit.Text
  113. SaveSetting "EsR", "Path", "Savepath", Savepath
  114. Opzioniliste
  115. Options.Enabled = True
  116. List2.Enabled = True
  117. End If
  118. End Sub
  119.  
  120.  
  121. Private Sub connetti()
  122. wsk.Close
  123. wsk.RemotePort = 321
  124. wsk.RemoteHost = IPAdress
  125. wsk.Connect
  126. End Sub
  127.  
  128. Private Sub Form_Load()
  129. Savepath = GetSetting("EsR", "Path", "Savepath", App.Path & "\")
  130. IPAdress = GetSetting("EsR", "Connessione", "IPAdress", "127.0.0.1")
  131. Apridopodown = CBool(GetSetting("EsR", "General", "shellit", 0))
  132. Uppertext = IPAdress
  133. connetti
  134. End Sub
  135.  
  136. Private Sub paint()
  137. If Not Opzioni = True Then
  138. If Mid(Datiricevuti, 1, 6) = "drive:" Then
  139. Combo1.AddItem Mid(Datiricevuti, 7, Len(Datiricevuti) - 6)
  140. ElseIf Mid(Datiricevuti, 1, 4) = "dir:" Then
  141. List1.AddItem Mid(Datiricevuti, 5, Len(Datiricevuti) - 4)
  142. List3.AddItem Mid(Datiricevuti, 5, Len(Datiricevuti) - 4)
  143. ElseIf Mid(Datiricevuti, 1, 5) = "file:" Then
  144. List2.AddItem Mid(Datiricevuti, 6, Len(Datiricevuti) - 5)
  145. ElseIf Mid(Datiricevuti, 1, 5) = "path:" Then
  146. Remotepath = Mid(Datiricevuti, 6, Len(Datiricevuti) - 5)
  147. ElseIf Mid(Datiricevuti, 1, 5) = "Sincr" Then
  148. List1.Clear
  149. List2.Clear
  150. List3.Clear
  151. Combo1.Clear
  152. End If
  153. End If
  154. End Sub
  155.  
  156. Private Sub localpaint()
  157. If Not Opzioni = True Then
  158. List4.Clear
  159. List5.Clear
  160. Combo1.Clear
  161. For X = 0 To Dril.ListCount - 1
  162. Combo2.AddItem Dril.List(X)
  163. Next X
  164. List4.AddItem ("..")
  165. For X = 0 To Dirl.ListCount - 1
  166. List4.AddItem Dirl.List(X)
  167. Next X
  168. For X = 0 To Fill.ListCount - 1
  169. List5.AddItem Fill.List(X)
  170. Next X
  171. End If
  172. End Sub
  173.  
  174. Private Sub Options_Click()
  175. If Opzioni = False Then
  176. Opzioni = True
  177. Options.Enabled = False
  178. Connect.Enabled = False
  179. Combo1.Enabled = False
  180. Uppertext.Enabled = False
  181. List1.Enabled = False
  182. List1.Clear
  183. List2.Clear
  184. Uppertext.Text = "- - OPTIONS - -"
  185. If Updown = False Then
  186. Do Until List1.Width <= 1695
  187. List2.Width = List2.Width + 50
  188. List2.Left = List2.Left - 50
  189. List1.Width = List1.Width - 50
  190. DoEvents
  191. Loop
  192. Else
  193. List2.Clear
  194. List3.Clear
  195. List4.Clear
  196. List5.Clear
  197. Do Until List1.Left >= 120
  198. List5.Left = List5.Left + 50
  199. List4.Left = List4.Left + 50
  200. List3.Left = List3.Left + 50
  201. List2.Left = List2.Left + 50
  202. List1.Left = List1.Left + 50
  203. DoEvents
  204. Loop
  205. Do Until Combo1.Left <= 120
  206. Combo2.Left = Combo2.Left - 50
  207. Combo1.Left = Combo1.Left - 50
  208. Combo1.Width = Combo1.Width + 50
  209. DoEvents
  210. Loop
  211. End If
  212. Opzioniliste
  213. Options.Enabled = True
  214. Else
  215. Options.Enabled = False
  216. List1.Clear
  217. List2.Clear
  218. If Updown = False Then
  219. Do Until List1.Width >= 6135
  220. List2.Width = List2.Width - 50
  221. List2.Left = List2.Left + 50
  222. List1.Width = List1.Width + 50
  223. DoEvents
  224. Loop
  225. Else
  226. Do Until List3.Left <= 120
  227. List5.Left = List5.Left - 50
  228. List4.Left = List4.Left - 50
  229. List3.Left = List3.Left - 50
  230. List2.Left = List2.Left - 50
  231. List1.Left = List1.Left - 50
  232. DoEvents
  233. Loop
  234. Do Until Combo2.Left >= 120
  235. Combo2.Left = Combo2.Left + 50
  236. Combo1.Left = Combo1.Left + 50
  237. Combo1.Width = Combo1.Width - 50
  238. DoEvents
  239. Loop
  240. End If
  241. Uppertext.Text = IPAdress
  242. Connect.Enabled = True
  243. Uppertext.Enabled = True
  244. Combo1.Enabled = True
  245. List1.Enabled = True
  246. Options.Enabled = True
  247. Opzioni = False
  248. connetti
  249. localpaint
  250. End If
  251. End Sub
  252.  
  253. Private Sub Opzioniliste()
  254. List1.Clear
  255. List2.Clear
  256. List1.AddItem ("Download Path")
  257. List1.AddItem ("Upload Mode")
  258. List1.AddItem ("Shell After Download")
  259. List2.AddItem (Savepath)
  260. If Updown = True Then List2.AddItem ("On") Else List2.AddItem ("Off")
  261. If Apridopodown = True Then List2.AddItem ("Yes") Else List2.AddItem ("No")
  262. End Sub
  263.  
  264. Private Sub Wsk_ConnectionRequest(ByVal requestID As Long)
  265. If wsk.State <> sckClosed Then wsk.Close
  266. wsk.Accept requestID
  267. End Sub
  268. Private Sub Wsk_DataArrival(ByVal bytesTotal As Long)
  269. wsk.GetData Datiricevuti
  270. Select Case Wsstate
  271. Case 0 '------------------------------------NORMALITA'-----------------------
  272. If Datiricevuti = "Sincr" Then
  273. Wsstate = 1
  274. paint
  275. End If
  276. If Datiricevuti = "down" Then
  277. Wsstate = 2
  278. List1.Enabled = False
  279. List2.Enabled = False
  280. Combo1.Enabled = False
  281. Uppertext.Enabled = False
  282. Options.Enabled = False
  283. Connect.Enabled = False
  284. Uppertext.Text = "Downloading.."
  285. PathFileRecived = Savepath & List2.List(List2.ListIndex)
  286. Open PathFileRecived For Binary As #1
  287. End If
  288. Case 1 '------------------------------------SINCRONIZZAZIONE-----------------------
  289. If Datiricevuti = "End" Then
  290. Wsstate = 0
  291.  
  292. Exit Sub
  293. End If
  294. paint
  295. Exit Sub
  296. Case 2 '------------------------------------DOWNLOADING-----------------------
  297. If Datiricevuti = "Ter" Then
  298. Wsstate = 0
  299. List1.Enabled = True
  300. List2.Enabled = True
  301. Combo1.Enabled = True
  302. Uppertext.Enabled = True
  303. Options.Enabled = True
  304. Connect.Enabled = True
  305. Uppertext.Text = IPAdress
  306. Close #1
  307. If Onlydown = False And Downandopen = False Then
  308. If Apridopodown = True Then
  309. Shell1 = Val(ShellExecute(Me.hwnd, vbNullString, (Chr(34) & PathFileRecived & Chr(34)), vbNullString, vbNullString, 1))
  310. End If
  311. Else
  312. If Downandopen = True Then
  313. Shell1 = Val(ShellExecute(Me.hwnd, vbNullString, (Chr(34) & PathFileRecived & Chr(34)), vbNullString, vbNullString, 1))
  314. End If
  315. Onlydown = False
  316. Downandopen = False
  317. End If
  318. Else
  319. Put #1, , Datiricevuti
  320. End If
  321. End Select
  322. End Sub
  323. Private Sub List1_dblClick()
  324. On Error GoTo Error
  325. wsk.SendData "dir:" & List1.ListIndex
  326. Error:
  327. End Sub
  328. Private Sub List3_dblClick()
  329. On Error Resume Next
  330. wsk.SendData "dir:" & List3.ListIndex
  331. End Sub
  332. Private Sub Combo1_Click()
  333. On Error Resume Next
  334. wsk.SendData "drive:" & Combo1.ListIndex
  335. End Sub
  336. Private Sub Combo2_Click()
  337. On Error Resume Next
  338. Dril.Drive = Combo2.List(Combo2.ListIndex)
  339. End Sub
  340. Private Sub Dirl_Change()
  341. Fill.Path = Dirl.Path
  342. localpaint
  343. End Sub
  344. Private Sub Dril_Change()
  345. On Error GoTo error_handler
  346. Dirl.Path = Dril.Drive
  347. error_handler:
  348. End Sub
  349. Private Sub List4_dblClick()
  350. On Error GoTo Error
  351. Dirl.Path = List4.List(List4.ListIndex)
  352. Error:
  353. End Sub
  354. Private Sub list5_dblClick()
  355. If wsk.State = sckConnected Then
  356. Dim data4 As String
  357. On Error GoTo Error
  358. List4.Enabled = False
  359. List5.Enabled = False
  360. List3.Enabled = False
  361. Combo1.Enabled = False
  362. Combo2.Enabled = False
  363. Uppertext.Enabled = False
  364. Options.Enabled = False
  365. Connect.Enabled = False
  366. Uppertext.Text = "Uploading.."
  367. Open Fill.Path & "\" & List5.List(List5.ListIndex) For Binary As #1
  368. wsk.SendData "upload:" & List5.List(List5.ListIndex)
  369. DoEvents
  370. data4 = Space(4000)
  371. For Conteggio = 0 To CLng(LOF(1) / 4000)
  372. Get #1, Conteggio * CLng(4000) + 1, data4
  373. wsk.SendData data4
  374. DoEvents
  375. Next Conteggio
  376. wsk.SendData "upend"
  377. DoEvents
  378. Close #1
  379. List4.Enabled = True
  380. List5.Enabled = True
  381. List3.Enabled = True
  382. Combo1.Enabled = True
  383. Combo2.Enabled = True
  384. Uppertext.Enabled = True
  385. Options.Enabled = True
  386. Connect.Enabled = True
  387. Uppertext.Text = IPAdress
  388. End If
  389. Error:
  390. End Sub
  391.  
  392.  
  393.  
  394.  
  395.  
  396. Public Function GetRClickedItem(MyList As Control, X As Single, Y As Single) As Long
  397.     Dim clickX As Long, clickY As Long
  398.     Dim lRet As Long
  399.     Dim CurRect As RECT
  400.     Dim l As Long
  401.     clickX = X \ Screen.TwipsPerPixelX
  402.     clickY = Y \ Screen.TwipsPerPixelY
  403.     For l = 0 To MyList.ListCount - 1
  404.       lRet = SendMessage(MyList.hwnd, LB_GETITEMRECT, l, CurRect)
  405.      If (clickX >= CurRect.Left) And (clickX <= CurRect.Right) And (clickY >= CurRect.Top) And (clickY <= CurRect.Bottom) Then
  406.             GetRClickedItem = l
  407.             Exit Function
  408.         End If
  409.     Next l
  410.     GetRClickedItem = -1
  411. End Function
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418. Private Sub Timer1_Timer()
  419. Select Case wsk.State
  420. Case sckClosing
  421. wsk.Close
  422. wsk.RemotePort = 321
  423. wsk.RemoteHost = IPAdress
  424. wsk.Connect
  425. Case sckError
  426. wsk.Close
  427. wsk.RemotePort = 321
  428. wsk.RemoteHost = IPAdress
  429. wsk.Connect
  430. End Select
  431. End Sub